如何修复此mod_rewrite规则中的无限循环?

时间:2012-03-24 15:30:03

标签: apache mod-rewrite

我在.htaccess中有以下内容。文件:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/css(/?|/.+)$
RewriteCond %{REQUEST_URI} !^/js(/?|/.+)$
RewriteCond %{REQUEST_URI} !^/img(/?|/.+)$
RewriteRule !^/handle\.php$ /handle.php [L]

我只想将所有请求(以/css//js//img/开头的请求除外)发送到handle.php。< / p>

但是当我提出请求时,我收到500错误,并在错误日志中打印:

[Sat Mar 24 16:14:53 2012] [error] [client x.x.x.x] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

为什么会陷入无限循环?

1 个答案:

答案 0 :(得分:1)

可能重写对/handle.php的请求与!^/handle\.php$不匹配,因此它会尝试重写重写等。您的问题可能是主要的斜杠?试着玩弄它。

如果没有,请查看RewriteLog指令(并查看下面的条目,RewriteLogLevel)。您将能够看到正在尝试重写的内容,并且您可能能够找出出现了什么问题。