Apache Redirect Loop

时间:2014-07-16 11:47:56

标签: apache loops rewrite infinite

我正在获得一个"网页有一个重定向循环"我在Apache中重写规则的错误。

我想为GET请求提供干净的URL,因此如果用户输入www.flavor.com/vanilla,服务器运行www.flavor.com/?s=vanilla,但网址只有www.flavor.com/vanilla所以我补充说:

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次并且无法解决这个问题。

1 个答案:

答案 0 :(得分: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]