it-swarm.com.ru

500 Внутренняя ошибка сервера при попытке использовать ErrorDocument для обработки запроса

У меня есть этот файл .htaccess:

Options -Indexes
RewriteEngine on

ErrorDocument 404 /404.php

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

RewriteCond %{THE_REQUEST} \.php
RewriteRule ^(.*)$ - [L,R=404]

Однако, когда я перехожу к localhost/example.php, он возвращает 500 Internal Server Error.

Любая помощь, пожалуйста? Благодарю.

Правка:

Полное сообщение об ошибке, которое появляется:

Not Found

The requested URL /example.php was not found on this server.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
10
user3130907

Скорее всего, вы получите 500 из-за ошибки зацикливания.

Исключить 404.php из последнего правила как:

ErrorDocument 404 /404.php

Options -Indexes -MultiViews
RewriteEngine on

RewriteCond %{THE_REQUEST} \.php [NC]
RewriteRule ^(?!404\.php)$ - [L,NC,R=404]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/]+)/?(.*)$ ./$1.php [L]
5
anubhava

404.php действительно установлен в корне вашей файловой системы?

Я думаю, нет.

Попробуйте что-то вроде ../404.php

Кстати: вы смотрели в ваших файлах журнала Apache? 

3
nl-x

Поскольку вы хотите скрыть расширение .php на своих страницах, попробуйте удалить это расширение из файла .htaccess, выполнив следующие действия:

Изменение: ErrorDocument 404 /404.php на ErrorDocument 404/404

Надеюсь это поможет.

JJ

0
user4483327