Внутренняя ошибка сервера htaccess - PullRequest
2 голосов
/ 01 июня 2011

Когда я перехожу на http://example.com/not-here, вместо 404 я получаю внутреннюю ошибку сервера, вот мой файл htaccess (он удаляет расширение, поэтому abc.php может быть доступен как example.com/abc вместо примера. ком / 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 ]

3 голосов
/ 01 июня 2011

Я должен иметь в .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 голос
/ 01 июня 2011

Что я делаю, когда сталкиваюсь с этим, это закомментирую строки.Закомментируйте раздел перезаписи и посмотрите, работает ли это.Чтобы закомментировать код, просто поставьте # в качестве первого символа.Все дело в сужении кода до линии преступника.

0 голосов
/ 01 июня 2011

internal server error вызвано бесконечным циклом вашего RewriteRule.

Просто измените RewriteRule на это:

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

Negative lookbehind (?<!\.php) предотвратит более одного внутренних перенаправлений .

...