Кажется, у меня есть страница с ошибкой 500 и нет страницы с ошибкой 404, почему?

Я пытаюсь создать собственные страницы ошибок 500 и 404.

вот моя страница .htaccess:

Options -MultiViews
    RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !\.php$
RewriteRule ^(.*)$ $1.php [L,QSA]

ErrorDocument 404 "Sorry, this page was not found"
ErrorDocument 500 "Sorry, something went wrong, try again later" 

вот страница 404 http://example.com/cats - не страница (но отображается как 500)

и это должно быть 500 http://example.com/dogs - страница (поскольку возвращенный запрос пусто), но это вовсе не сообщение об ошибке - думаю, это должно быть 500 в любом случае, я бы хотел, чтобы это было

Кажется, он всегда показывает 500, а не 404, но я не могу понять, как это остановить/исправить, есть идеи???

Исправлено сейчас


person JenStar23    schedule 10.08.2013    source источник


Ответы (1)


500 будет выброшено только в том случае, если есть исключение, вызванное php, а не логическими ошибками. запрос select, возвращающий пустой результат, не считается ошибкой php, поскольку иногда запросы возвращают пустой результат как часть законного потока кода.

что касается получения 500 вместо 400, это появляется здесь http://www.javascriptkit.com/howto/htaccess2.shtml, который вы должны перенаправить на страницу, а не пытаться передать строку. настройте страницу, которую вы хотите отображать, а затем поместите URL-адрес в свой htaccess

вот так:

ErrorDocument 500 /errors/serverr.html
person Kelly Larsen    schedule 10.08.2013
comment
К сожалению, без изменений (используя это сейчас: ErrorDocument 404 /errors/404.html ErrorDocument 500 /errors/505.html) - person JenStar23; 10.08.2013
comment
Я не эксперт по .htaccess, но возможно, что какая-то ваша причудливая переписывание мешает процессу, попробуйте закомментировать все переписывание и попробуйте выдать 404 - person Kelly Larsen; 10.08.2013
comment
Кроме того, при попытке использовать ErrorDocument для обработки запроса возникла ошибка 500 Internal Server Error. указывает мне, что это может быть просто основная синтаксическая ошибка в .htaccess - person Kelly Larsen; 10.08.2013