404 и 403 страницы

Как известно, у протокола HTTP есть разные коды ответов клиентскому приложению на запрос какой либо страницы. Код 200 отдается если документ найден и произойдет отдача его содержимого. Код 304 - отдается если документ найден, уже забирался клиентским приложением и не был изменен. Есть даже стандарт на коды ответов - http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html. Но нас интересуют коды 404 и 403. Допустим, не нашлась страница или не нашелся документ или доступ на сервер запрещен для какого то раздела. Тогда вебприложение должно, если ничего не найдено, - отдать код 404, если запрещено - код 403, и выдать какой то контент на тему того, что "в данном месте делать нечего". У apache, nginx есть свои страницы по умолчанию. У CMS, как например у Drupal они тоже есть. Однако большинство вебмастеров не понимают ценности страницы такого рода. Представим ситуацию. Пользователь зашел на сайт. Попробовал открыть несуществующий документ. Система ему выдала скупые строки - мол нет ничего и все. Посетитель уходит, мы его потеряли. А теперь поразмыслим. А вдруг мы могли переименовать документ? Или перенести в другой раздел? У нас есть поиск. У нас есть форма сообщений об ошибка. Тогда вопрос - почему мы пользователю этого не предлагаем? Drupal в настройках позволяет настроить страницы ответов 404 и 403 - заменив их своими документами. Но почему-то лишь небольшое количество вебмастеров пользуются такой возможностью. Странно. Ведь у всех есть возможность предложить посетителю альтернативу - если он ничего не нашел. Да и скупой ответ "не найдено" на самом деле может оказаться не окончательным. У всех на сайте есть поиск. Почему бы не предложить посетителю найти "тот самый" документ? Вдруг он на сайте все же есть?

Комментарии

Прописные истины, о чём говориться в документации по настройке практически любой cms системы, просто проблема в том что многие "мастера" не читают ее, и не понимают как это важно. Мне кажется таким мастерам не поможешь уже не чем.
Кстати если отдавать только контент о том что страница не найдена, без указания кода 404, поисковые системы могут забанить за дубляж контента.

Еще не учитывают отдачу кода при переносе (переименовании) материала по новому адресу,т.е. если материал переименовали\перенесли и у него сменился адрес, то следует при обращении по старому адресу отдавать код 302 (вроде)"Материал перемешен" с указанием нового адреса.

Submitted by Azarov on
Кстати если отдавать только контент о том что страница не найдена, без указания кода 404, поисковые системы могут забанить за дубляж контента.
Ну вроде CMS отдают коды в заголовках :) Drupal, по крайней мене, это делает.

На такие страницы классно JS вставлять, внимание притягивает, а если прикольный текст ещё, так просто завораживает. ИМХО лучший способ, чтобы человек никуда не ушёл. Помню, когда как-то попал на NextMail на несуществующую страницу, сидел и до конца читал, что мне пишут :)
http://nextmail.ru/489498498

Submitted by Azarov on
Старо. Лучше бы вешали что-то информативное. Вообще я наметил - на одном моем проекте 404 практически не бывает. Drupal весьма связная штуковина - если не маяться с дополнителной перелинковкой.

Submitted by Таврия (не проверено) on

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

---
оцилиндрованный брус<

Submitted by Сетегном (не проверено) on

Конкурс к 4 апреля по таким страничкам - http://devaka.ru/articles/404-contest. Куча ссылок в камментах на примеры 404-страничек :)