HTACCESS 500内部服务器错误网站瘫痪了

时间:2013-11-25 08:58:36

标签: php regex apache .htaccess mod-rewrite

我在.htaccess文件中做了一些小改动,我现在收到500内部服务器错误。我把它改回了错误之前的状态,但错误仍然存​​在。

这是文件:

ErrorDocument 404 /404-error-page.php

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule \.(css|jpe?g|gif|png)$ - [L]
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^dsa-office /(.*)/ dsa_office.php?location=$1
RewriteRule ^([^/\.]+)/?$ /$1.php [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /$1.php?location=$2 [L]

我编辑最后3行中的一行。有任何想法吗?感谢

1 个答案:

答案 0 :(得分:1)

这条规则看起来很可疑:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^dsa-office /(.*)/ dsa_office.php?location=$1

^dsa-office/(.*)/

之间的匹配模式中有空格

将此规则更改为:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^dsa-office/(.*?)/?$ dsa_office.php?location=$1 [L,QSA]