重写规则导致500错误

时间:2014-10-13 20:05:11

标签: php apache mod-rewrite

我有以下重写规则。我没有写它所以我不确定我应该改变什么。

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]

RewriteCond /%{REQUEST_FILENAME}.php -f
RewriteRule ^([a-zA-Z0-9_-\s]+)/$ /$1.php

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ /%1 [R=301,L]

我知道问题在于这一行

RewriteRule ^([a-zA-Z0-9_-\s]+)/$ /$1.php

当我删除那个部分时一切正常,但我认为编码器出于某种原因包含它,那么它有什么问题呢?

我在子域中运行此脚本。

我没有更新以下

的行
RewriteRule ^([a-zA-Z0-9\s_-]+)/$ /$1.php

不确定是否可以这样做。我发现它必须与(-)做一些事情,它必须在最后。

感谢

1 个答案:

答案 0 :(得分:0)

我试过了你的

RewriteRule ^([a-zA-Z0-9_-\s]+)/$ /$1.php

并根据代码检查它,它在重写规则检查器上看起来没问题。尝试添加[L]。您可能需要定义它。