2011-02-27 81 views
1

我有這個問題,我把CMS從舊的切換到新的,所以我試圖正確地重定向的URL。試圖讓mod_rewrite工作

這裏有一些例子網址,我想轉換:

#-1) http://www.mysite.com/?dispatch=search_data&features=hash_tag 
#-2) http://www.mysite.com/index.php?dispatch=search_data&features=hash_tag 

基本上兩者是除了第一個相同沒有的index.php在URL中。

我得到了下面的代碼,以部分工作:

RewriteCond %{QUERY_STRING} dispatch=(.*) 
RewriteRule ^$ http://www.mysite.com/? [L,R=301] 

上面的代碼適用於#-1(當沒有的index.php),但是當存在的index.php這是行不通的。

任何幫助/指導,非常感謝。

感謝

__ _ __ _ __ _ ___UPDATE_ __ _ __ _ __ _ __ _ __

根據要求,這裏是目標URL應該是什麼樣的: http://www.mysite.com/

回答

2

你是什麼意思呢「作品」?

你應該發佈一個你想讓新url看起來像給定舊url的例子。

但在任何情況下,你的問題的一部分是,RewriteRule線特別排除index.php和網站上的任何其他網頁。

基本上你寫什麼tranlates這樣:

if the query string contains "dispatch=...": 
    redirect requests FOR THE HOME PAGE ONLY (^$) to http://www.mysite.com/ 
+0

我已更新原始帖子,指出目標網址應該是什麼。我也不理解爲什麼目標網址很重要。我希望'dispatch'和'index.php?dispatch'被轉發到'http:// www.mysite.com' – Adil 2011-02-27 04:37:05

+1

我在說'^ $'只匹配基礎url('/')後面沒有任何東西。試試'^(index \ .php)?$'代替。 – tangentstorm 2011-02-27 04:39:54

+0

嘿!這就說得通了。非常感謝你! – Adil 2011-02-27 05:18:33

0

你嘗試過改變第二部分包括「的index.php」的一部分?

RewriteRule ^$ http://www.mysite.com/index.php? [L,R=301] 
+0

我不認爲這是正確的。重定向不是這裏的問題。問題是重寫條件不起作用。 – Adil 2011-02-27 04:17:44

1
RewriteCond %{QUERY_STRING} dispatch=(.*) 
RewriteRule ^(index.php)?$ http://www.mysite.com/? [L,R=301] 
+0

謝謝。我使用了tangentstorm的代碼,但是你的代碼是一樣的。 – Adil 2011-02-27 05:20:37