PHP перейдите на страницу ошибки
-
06-07-2019 - |
Вопрос
На моем веб-сайте website.com/downloads фактически переходит в website.com/index.php?page=downloads (с переписыванием на apache).У меня есть пользовательский набор страниц с ошибкой 404 not found.Если я это сделаю website.com/dkfjf/fdf, это приведет к ошибке 404, но если я это сделаю website.com/something, это приведет к index.php?page=something, так что тогда в моем index.php , как я могу заставить его просто перейти к ошибке 404, после того как я определю, что ее нет something
страница?Потому что прямо сейчас я просто загружаю страницу с ошибкой my 404 в основной div (как и все другие страницы), но она непоследовательна (например, она все еще отображается website.com/soemthing в адресной строке, и есть другие проблемы), и я просто хочу, чтобы он перешел к ошибке 404.Как я могу это сделать?
Редактировать:это сработало:
echo '<meta http-equiv="refresh" content="0; url = /error" />';
(mywebsite.com/error перезаписывает в index.php?page=error, это моя страница с ошибкой 404).Разве это плохой подход?
Решение
Используйте header
функция чтобы отправить правильный код состояния:
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
Затем вы можете отправить свой документ об ошибке с readfile
если это статический файл или с include
если это PHP-файл.