Как правильно отдавать 404 страницу?

6 ответ(ов) в теме
Форум
Гость
0
07:47

У сайта такой страницы не было, и на отсутствующий урл вылезала страница хостера 404 not found с кучей рекламы. Как правильно сделать отдачу своей 404.html?
Прописал ErrorDocument 404 /404.html
Это работает и моя страница показывается, но сервер выдает HTTP/1.1 301 Moved Permanently.
Как сделать, чтобы выдавал HTTP/1.1 404 Not Found? Такое ответ был при выдаче страницы хостера.

Редакции сообщения
0
Максим
не в сети давно
На сайте с 20.08.2012
Участник
0
07:56

В хостинг-панели нет опции добавления страниц ошибок? 🙂

Редакции сообщения
0
Форум
Гость
0
07:59

С таким косяком надо к хостеру обращаться.
Ну или как посоветовал nice - попробовать вначале через панель хостера создать страницы ошибок.

Редакции сообщения
0
moto
не в сети 16 минут
На сайте с 12.03.2017
Администратор
Тем 3410
Сообщения 13604
0
08:40

А что за CMS? если Joomla можно просто сделать в виде отдельной страницы 404

Редакции сообщения
0
moto
не в сети 16 минут
На сайте с 12.03.2017
Администратор
Тем 3410
Сообщения 13604
0
15:05

Код ошибки 404 означает, что документ не найден (Not Found). Чаще всего такие ситуации возникают из-за наличия битых ссылок, но иногда бывают и другие причины. В любом случае, 404 ошибку нужно обрабатывать правильно.

Вам кажется, что в этом нет необходимости? А Вы уверены, что на сайте все ссылки не битые и что все пользователи попадают на существующие документы? Ведь это нельзя отследить. Только создав страницу 404, Вы сможете посмотреть статистику и проанализировать количество заходов на неё. Надеюсь я смог Вас убедить в необходимости обработки этой ошибки. Как правильно это сделать читайте ниже.

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

Алгоритм обработки 404 ошибки:
1. Для начала зайдите в файл .htaccess и пропишите в конце файла:

ErrorDocument 404 /404.html
ErrorDocument - это обязательное слово, после которого идет код ошибки. В нашем примере это 404, поскольку нам надо обработать именно её. Далее после пробела идет адрес страницы, которая будет отображена в случае, если документ не найден. Обратите внимание, что указан относительный путь. Если указать полный путь, то будет всегда происходит редирект 302 с несуществующей страницы на ту, которая будет указана в адресе. С точки зрения поисковой машины это не совсем верно, поэтому лучше пишите относительный путь.

Примечание:
Адрес страницы может быть любой, но обычно её называют 404.html.

2. Создайте 404 страницу. На этой странице лучше будет сделать стандартный шаблон с текстом, которая вежливо сообщает пользователю о возникшей проблеме. Например, текст может быть таким: "К сожаления, данная страница не существует, воспользуйтесь, пожалуйста, навигацией по сайту и т.д.". Страница 404.html позволит не потерять пользователя, который случайно попал на несуществующий документ.

Проверить правильность работы можно с помощью сервиса bertal.ru. Введите адрес Вашего сайта с абракодаброй, например, mysite.ru/123abd и нажмите проверить. В ответ должно появится сообщение:

HTTP/1.1 404 Not Found
Server: nginx
Date: Fri, 15 Jun 2012 12:41:33 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Keep-Alive: timeout=5
Если этого не произошло и Вы получили другой ответ сервера, то советую удалить то, что Вы сделали, поскольку лучше оставить все как есть, чем сделать не правильно.

Если у Вас не получается создать 404 страницу, то лучше не создавайте её вообще. Ни в коем случае не указывайте в строке ErrorDocument 404 ссылку на главную страницу сайта. Это грубейшая ошибка, из-за которой возможна пессимезация со стороны поисковых машин.

Редакции сообщения
0
Master-It
не в сети давно
На сайте с 23.07.2012
Участник
0
13:44

Я для всех своих проектов, всегда создаю страницу 404.php. И это именно PHP скрипт, в заголовке которого написано:
header('HTTP/1.1 404 Not Found');
Вообще наличие этой странице считаю обязательным. Ибо в этом скрипте у меня реализован шпион, который записывает и сохраняет в базу, все ip адреса и некорректные запросы к сайту, а я уже потом смотрю, кто и чего искал, анализирую и ставлю БАН в .htaccess по ip, при необходимости.
Вот даже на WordPress сделал себе такого Error 404 шпиона, в виде усатого Бората) :-X

Редакции сообщения
0

Ваше имя *

Ваш E-mail *

не публикуется

Текст сообщения *