2014-07-16 72 views
0

我得到一个“网页有一个重定向循环”错误在我的Apache重写规则。Apache重定向循环

我想为GET请求提供干净的URL,因此如果用户键入www.flavor.com/vanilla,服务器运行www.flavor.com/?s=vanilla,但URL只读www.flavor.com/香草所以我加了这一点:

RewriteRule ^([a-z]+)$ /?s=$1 

这工作得很好,但我也希望有www.flavor.com/?s=vanilla重定向到www.flavor.com/vanilla所以我说这个,这是造成一个循环。

RewriteCond %{QUERY_STRING} ^s=([a-z]+)$ 
#RewriteRule ^(.*)$ /%1? [L,R=301] 

我试着向两者添加[END]和[L],但没有帮助。我已经重写了这200次,但无法弄清楚。

回答

0

至于回答herehere这应该有所帮助:RewriteCond %{ENV:REDIRECT_STATUS} 200

全部文件:

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule ^([a-z]+)$ /?s=$1 
RewriteCond %{QUERY_STRING} ^s=([a-z]+)$ 
RewriteRule ^(.*)$ /%1? [L,R=301] 
+0

我想这一点,但我得到以下错误信息:未找到 所请求的网址/例如在此服务器上未找到。 此外,尝试使用ErrorDocument处理请求时遇到404未找到错误。 Apache服务器在mysite.org端口80 –