【问题标题】:Apache Redirect LoopApache 重定向循环
【发布时间】:2014-07-16 11:47:56
【问题描述】:

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

我想为 GET 请求提供干净的 URL,因此如果用户键入 www.flavor.com/vanilla,服务器会运行 www.flavor.com/?s=vanilla 但 URL 仅读取 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 次,还是搞不明白。

【问题讨论】:

    标签: apache loops rewrite infinite


    【解决方案1】:

    正如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]
    

    【讨论】:

    • 我试过了,但收到以下错误消息:未找到在此服务器上未找到请求的 URL /example。此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。 Apache 服务器在 mysite.org 端口 80
    猜你喜欢
    • 1970-01-01
    • 2011-08-08
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多