在URL的末尾添加一个尾部反斜杠会导致错误500,即/ forum /。输入/ forum时,/forum.php按预期加载到浏览器上。检查错误日志文件后,它会显示
由于可能,请求超出了10个内部重定向的限制 配置错误。使用'LimitInternalRecursion'来增加 必要时限制。使用“LogLevel debug”获取回溯。
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(admin|user)($|/) - [L]
#RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteRule ^([A-Za-z0-9-_]+)$ /index.php?view=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ index.php?view=$1&page=$2 [L]
如果我添加反斜杠'?/',/论坛会加载索引页面,/ forum /会加载/forum.php
RewriteRule ^(.*)?/$ $1.php [L]
我哪里出错了?提前谢谢。
答案 0 :(得分:0)
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
如果请求的文件存在,此RewriteCond
条件应防止重写。在您的情况下,/forum
将被重写为/forum.php
,然后重写的请求将被传回URL解析引擎,该引擎将发现/forum.php
存在,并且此规则将不再被执行。
当您请求/forum/
时,它会被重写为/forum/.php
,但它不存在,因此会被重写为/forum/.php.php
等。如果您启用了重写{{{}},您可以在错误日志中查看此内容3}}
快速解决方法是用此删除trailin斜杠(将其放在RewriteBase /
下面:
RewriteRule ^(.*)/$ /$1 [NC,L]