当'index.html'存在时,不会在.htaccess中重写URL

时间:2011-08-04 18:54:40

标签: ruby-on-rails .htaccess mod-rewrite

以下是.htaccess重写的一部分:

RewriteCond %{QUERY_STRING} ^pid=directions_to_business$  
RewriteRule ^$ directions? [NC,R=301,L]

所以实质上,http://www.mybusiness.com/?pid=directions_to_business应该重定向到http://www.mybusiness.com/directions。但是,如果给出此网址:http://www.mybusiness.com/index.html?pid=directions_to_business,则不会重定向网址。

如果有任何不同,我正在使用Rails应用程序。

1 个答案:

答案 0 :(得分:0)

您的代码,

RewriteRule ^$ directions? [NC,R=301,L]

仅匹配空请求,即根(查询字符串不用于RewriteRule)。你想要这个:

RewriteRule ^.*$ directions [NC,R=301,L,QSA]

如果您希望QSA转到http://www.mybusiness.com/?pid=directions_to_business&from=...,也会转发您的查询字符串(http://www.mybusiness.com/directions?from=...)。