每当我尝试使用我的 .htaccess 访问不存在的文件/文件夹时,它都会返回 500 错误而不是 404 以及日志中的以下消息:
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.
这是导致问题的代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/*$ /$1.php?p=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/*$ /$1.php [L]
</IfModule>
代码转换url如下:
http://mysite.com/about -> http://mysite.com/about.php
http://mysite.com/something/else -> http://mysite.com/something.php?p=else
导致错误的 url 实际上是服务器找不到的任何 URL,例如:
http://mysite.com/Idontexist.php
http://mysite.com/nosuchfolder
有谁知道如何防止这种情况?