我想将 www.example.com/foo 重定向到 www.example.com/bar/index.php/foo
所以我有规则(mod_rewrite)
<Location />
RewriteEngine on
RewriteRule /(.*) /bar/index.php/$1 [L]
</Location>
此配置导致了无限循环,如何修复?
谢谢。
答案1
就像 Ency 所建议的,您需要确保您不会尝试访问index.php
:
RewriteEngine on
RewriteCond %{REQUEST_URI} !/bar/index.php/.*
RewriteRule /(.*) /bar/index.php/$1 [L]
希望这可以帮助。
答案2
您应该尝试添加 RewriteCond:RewriteCond %{HTTP_USER_AGENT} ^Mozilla。铬合金。$
仅当请求来自浏览器时才执行重定向,这样可以防止无限循环*。
*- 假设 apache 重定向请求将有一个空的 http 标头 HTTP_USER_AGENT/apache,而不是原始标头。PS:您可能希望将 ie 的 http 标头添加到列表中。