2011-03-22 154 views
0

我正在使用htaccess使用GET變量重寫URI變成更友好的東西。htaccess與動態變量衝突衝突

RewriteEngine on 
RewriteRule ^animals/(.*)/ secondary.php?page=$1 
RewriteRule ^animals/(.*) secondary.php?page=$1 

它(正確地)導致

http://www.example.com/animals/duck 

的問題是我現在需要重定向一些頁面到新的頁面。我已經試過:

Redirect 301 /animals/goose http://www.example.com/animals/fowl 

重定向差不多的工作,但它增加了「頁面=鵝?」在重寫的URI的結尾:

http://www.example.com/animals/fowl?page=goose 

我已經使用重寫規則試圖以及RewriteCond,但不幸的是我沒有運氣。任何幫助將非常感激。

回答

0

嘗試將其放在其他規則之前而不是重定向語句。 R=301用於重定向,L表示有問題的規則是要處理的最後一條規則。

RewriteRule ^animals/goose /animals/fowl [R=301,L] 

此外,你可以很容易地使斜槓(就像任何其他字符)可選帶問號,而不是有兩個規則。

RewriteRule ^animals/(.*)/?$ secondary.php?page=$1 
+0

感謝您的快速回復。我想我一下子改變了太多東西。我放置文件的規則頂部似乎已經解決了我的問題。非常感謝。 – kworry 2011-03-23 15:46:31