Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 当';index.html';目前_Ruby On Rails_.htaccess_Mod Rewrite - Fatal编程技术网

Ruby on rails 当';index.html';目前

Ruby on rails 当';index.html';目前,ruby-on-rails,.htaccess,mod-rewrite,Ruby On Rails,.htaccess,Mod Rewrite,以下是.htaccess重写的一部分: RewriteCond %{QUERY_STRING} ^pid=directions_to_business$ RewriteRule ^$ directions? [NC,R=301,L] 所以在本质上,应该重定向到。但是,如果给定此url:,则不会重定向该url 如果有什么不同的话,我正在使用Rails应用程序。您的代码 RewriteRule ^$ directions? [NC,R=301,L] 仅匹配空请求,即根(查询字符串不用于重写规

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

RewriteCond %{QUERY_STRING} ^pid=directions_to_business$  
RewriteRule ^$ directions? [NC,R=301,L]
所以在本质上,应该重定向到。但是,如果给定此url:,则不会重定向该url

如果有什么不同的话,我正在使用Rails应用程序。

您的代码

RewriteRule ^$ directions? [NC,R=301,L]
仅匹配空请求,即根(查询字符串不用于重写规则)。你想要这个:

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

如果您想
http://www.mybusiness.com/?pid=directions_to_business&from=...
转到
http://www.mybusiness.com/directions?from=...

谢谢,这很有效;但是我不想附加查询字符串。我删除了QSA并将问号放回,但由于某种原因,URL现在被改写为:仍然不会改变最终结果。@Jake:我收回它。显然,后面的问号应该会删除URL。好吧,对于其余的URL,重写工作正在进行中-但是对于我尝试的第一个URL,我仍然会得到一个附加的查询字符串…看起来Firefox在内存中的某个地方保存了URL…我甚至尝试重新启动,但这没有帮助。我在IE中尝试了这个URL,它正确地重定向了。所以问题解决了@杰克:是的,301是一个永久的重定向,所以firefox有权缓存它。引用“除非另有说明,否则此响应是可缓存的。”