Перенаправление на главную страницу после ошибки 404 в PHP

У меня есть веб-страница php, которая теперь использует настраиваемые страницы ошибок, когда страница не найдена. Пользовательские страницы ошибок включены в PHP.

Поэтому, когда кто-то вводит несуществующий URL-адрес, я просто включаю страницу с ошибкой, и страница с ошибкой начинается с:

<?php header("HTTP/1.1 404 Not> Found"); ?>

Это также сообщает сканерам, что страница не существует.

Сейчас я установил новую систему. Когда пользователь вводит неправильный URL-адрес, пользователь отправляется обратно на главную страницу, и на главной странице отображается сообщение. Я перенаправляюсь на главную страницу следующим образом:

header('Location:' . __TINY_URL . '/');

Теперь проблема в том, что PHP просто отправляет код 200, страница найдена.

Как я могу смешать эти два, чтобы создать код 404 на главной странице.

И это в целом хороший способ представления страницы с ошибкой.


person Saif Bechan    schedule 13.05.2010    source источник
comment
Это было бы очень раздражающим поведением, ИМХО. Вы должны показывать страницу ошибки 404 со ссылкой на домашнюю страницу, а не делать автоматическое перенаправление.   -  person nico    schedule 13.05.2010


Ответы (3)


Перенаправление после ошибки — не очень хорошая идея. Это особенно раздражает людей, которые любят вводить/редактировать URL-адреса, потому что, если вы сделаете опечатку, вы будете перенаправлены на какую-то произвольную страницу и вам придется начинать все сначала.

Я предлагаю вам вообще этого не делать. Если вы хотите, вы можете сделать так, чтобы ваша страница с ошибкой выглядела как ваша главная страница, хотя я думаю, что это было бы несколько запутанным.

person Matti Virkkunen    schedule 13.05.2010
comment
Да, после некоторых размышлений было бы лучше не просто перенаправлять. Я просто оставлю все как есть. Спасибо. - person Saif Bechan; 13.05.2010

Это дает вам код 200, потому что вы перенаправляете на страницу, которая возвращает код 200. Как я делал это раньше, это отправить заголовок 404, а затем загрузить представление 404.

header("HTTP/1.0 404 Not Found");
include("four_o_four.php");
person Galen    schedule 13.05.2010

Вы можете добавить это в свой htaccess

ErrorDocument 404 http://www.yourdomain.com/404.php

or

ErrorDocument 404 http://www.yourdomain.com/index.php #Your homepage

Это отправит заголовок инициализации 404

person Lizard    schedule 13.05.2010