简单的htaccess重定向错误500

时间:2016-03-08 03:52:13

标签: php apache .htaccess mod-rewrite

我在我的网站项目中使用下一个.htaccess文件。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME}% !-d
RewriteCond %{REQUEST_FILENAME}% !-f
RewriteCond %{REQUEST_FILENAME}% !-l



#RewriteLogLevel 9

RewriteRule \.(css|jpe?g|gif|png|js|ods|odt|doc?x|xls|pdf|eot|svg|ttf|woff|less|xml|gz)$ - [L]
RewriteRule  ^(.+)$ index.php?url=$1 [QSA,L]
 here

这总是很好,但今天我的托管服务做了一些改变(我认为),现在我的网络上有500错误。 我联系了他们,他们告诉我该网站有下一个错误日志。

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.

有人可以告诉我,我该怎么做才能解决这个问题?我在其他帖子中看到可能我的RewriteRule可能更好,但我不知道。

感谢。

PD:抱歉,我的英语不好。

1 个答案:

答案 0 :(得分:0)

由于无效的RewriteConds,您的重写规则无条件地重写了对/index.php的所有请求。改变这种行为只需删除"%"来自测试字符串:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l



#RewriteLogLevel 9

RewriteRule \.(css|jpe?g|gif|png|js|ods|odt|doc?x|xls|pdf|eot|svg|ttf|woff|less|xml|gz)$ - [L]
RewriteRule  ^((?!index\.php).+)$ index.php?url=$1 [QSA,L]