【问题标题】:URL rewrite fails: Internal redirectsURL 重写失败:内部重定向
【发布时间】:2013-05-13 13:30:41
【问题描述】:
我正在尝试将 example.com/test 重写为 example.com/pages/test.php(等等)。
我已经编写了这个代码:
RewriteEngine on
RewriteRule ^(.*) /pages/$1.php
这不起作用:Apache 给我这个错误:
由于可能的配置错误,请求超出了 10 个内部重定向的限制。如有必要,使用“LimitInternalRecursion”增加限制。使用“LogLevel debug”获取回溯。
我不知道该怎么做。
【问题讨论】:
标签:
apache
.htaccess
mod-rewrite
【解决方案1】:
Apache 正在将/test 重写为/pages/test.php,然后尝试将其重写为/pages/pages/test.php.php,然后/pages/pages/pages/test.php.php.php 等等......
添加一个 [L] 标志以在第一个之后停止重写。
通常,您还需要以下几个重写条件,以防止您实际上不想重写的重写(对于图像、脚本等):
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) /pages/$1.php [L]
【解决方案2】:
它正在循环。尝试在 RewriteRule 的末尾添加 [L]。