mod_rewrite:由于可能的配置错误,请求超过了10个内部重定向的限制?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (46)

我在Linux上运行Apache 2.4和PHP 5.6,并且在用户访问不存在文件或direcrtory(例如:/test/1.asp或/ aa /)时注意到以下错误 :

显示器显示:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at webmaster@xxx.edu to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Apache错误日志:

[core:error] [pid 12843] [client 202.xxx.xxx.xxx:64587] AH00124: 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.

.htaccess文件:

Options -MultiViews
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(en|zh|ja|ko)/(.*)$ $2?lang=$1 [L,QSA]
RewriteRule ^(.*)$ $1?lang=zh [L,QSA]
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

当用户在本网站访问不存在文件或direcrtory时,它应该返回404错误,而不是“内部服务器错误”。

如何解决它?

提问于
用户回答回答于

试试这件事

ErrorDocument 404 http://yourdomain.com/

你也有3个条件和3个规则。当三个条件成立时,第一个条件将被执行。另外2人将无条件地执行。我不确定这是你的意图。也可以考虑在循环中,每次[L]标志通过新的迭代开始。

扫码关注云+社区

领取腾讯云代金券