22.17. Страницы ошибок

Проблема

При переходе по несуществующей ссылке пользователь сталкивается с простой, минималистичной страницей ошибки 404, предоставляемой Apache:

Not found
The requested URL /foo was not found on this server.
Apache/2.0.50 (Unix) Server at http://bratgrrl.com Port 80

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

Решение

Создайте собственную страницу ошибки, например, 404-custom.html, которая будет оформлена в стиле вашего сайта. Включите в файл httpd.conf директиву ErrorDocument с указанием пути к этой странице:

ErrorDocument 404 /error/404-custom.html

По умолчанию страницы ошибок можно размещать в каталоге /error, но это можно изменить в зависимости от структуры вашего сайта.

Комментарий

Избегайте прямого изменения стандартных страниц ошибок, входящих в комплект поставки Apache. Чтобы найти их, проверьте каталог DocumentRoot; в большинстве систем они располагаются в каталоге /var/www/error. Лучше создать свою собственную страницу с нуля, так как стандартные страницы Apache интернационализированы и могут быть полезны для автоматической доставки сообщений об ошибках на языке посетителя. Для этого Apache использует механизм Content Negotiation, позволяющий отображать страницы ошибок на разных языках, если сайт нацелен на международную аудиторию (Раздел 22.20).

Создание персонализированных страниц ошибок

Использование ErrorDocument позволяет настраивать не только страницу ошибки 404, но и страницы других типов ошибок, например:

ErrorDocument 403 /error/403-custom.html
ErrorDocument 500 /error/500-custom.html

Можно также задать простое текстовое сообщение для некоторых ошибок. Например, для ошибки 403 можно задать сообщение прямо в конфигурации:

ErrorDocument 403 "Доступ запрещён. Пожалуйста, свяжитесь с администратором сайта."

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

Полезные советы по настройке страниц ошибок

Создание персонализированных страниц ошибок также может положительно сказаться на SEO: поисковые системы, такие как Google, учитывают удобство навигации и качественные страницы ошибок при ранжировании сайта. Такие страницы позволяют пользователю оставаться на сайте, не покидая его из-за неудобства, вызванного переходом на стандартную ошибку 404.

См. также

Документация Apache по ErrorDocument