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
感谢您的快速回复。我想我一下子改变了太多东西。我放置文件的规则顶部似乎已经解决了我的问题。非常感谢。 – kworry 2011-03-23 15:46:31