htaccess内部服务器错误

时间:2011-06-01 12:31:06

标签: .htaccess mod-rewrite internal-server-error

当我转到http://example.com/not-here时,我收到内部服务器错误而不是404,这是我的htaccess文件(它删除了扩展名,因此可以通过example.com/abc而不是example.com访问abc.php /abc.php):

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /$1.php [L,QSA]

DirectoryIndex login.php index.php

ErrorDocument 403 /error.php?type=403
ErrorDocument 404 /error.php?type=404
ErrorDocument 500 /error.php?type=500

其简洁的东西非常简单,但我看不到它,任何帮助都是适当的

3 个答案:

答案 0 :(得分:3)

我应该在.htaccess中有以下内容:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} !rewrited
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /$1.php?rewrited=1 [L,QSA]

DirectoryIndex login.php index.php

ErrorDocument 403 /error.php?type=403
ErrorDocument 404 /error.php?type=404
ErrorDocument 500 /error.php?type=500

答案 1 :(得分:1)

当我遇到这个时,我所做的就是注释掉。注释掉重写部分,看看是否有效。要注释掉代码,只需将#作为第一个字符。这就是将代码缩小到罪魁祸首。

答案 2 :(得分:0)

internal server error是由RewriteRule的无限循环引起的。

只需将您的RewriteRule更改为:

RewriteRule ^(.+)(?<!\.php)$ /$1.php [L,NC]

Negative lookbehind (?<!\.php)会阻止多个内部重定向