我正在使用以下代码获取500 Error内容:
RewriteEngine On
RewriteRule ^([^/]*)$ /get.php?action=$1 [L]
重写模块处于活动状态,安全模式关闭且没有问题,
我测试了这段代码:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
但没有改变。
现在该怎么办?
答案 0 :(得分:3)
我认为问题在于您没有设置任何限制,因此它会循环您的重定向。
这是一个自文件get.php存在以来会停止的示例。
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)$ /get.php?action=$1 [L]
为了进一步说明,您的示例中会发生的情况是,它会一遍又一遍地重定向到get.php
,因为您的规则告诉任何内容不是/
内部重定向但是如果文件没有停止退出,并且由于get.php
也属于你的正则表达式,它会再次重定向。
我添加的两个条件是,它告诉它停止文件或文件夹是否存在。
如果你使用HTTPD版本2.4+,你可以简单地使用标志[END]
,如下所示:
RewriteRule ^([^/]*)$ /get.php?action=$1 [END]
告诉服务器停止任何进一步的重定向。