htaccess与动态变量冲突冲突

htaccess与动态变量冲突冲突

问题描述:

我正在使用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,但不幸的是我没有运气。任何帮助将非常感激。

尝试将其放在其他规则之前而不是重定向语句。 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