
У вас есть возможность при возникновении ошибок выводить свою страницу с информацией которую посчитаете нужной. Например описание ошибки на русском языке, а кроме того меню, форму поиска и тд. На многих сайтах есть страница, которая открывается при запросе несуществующего URL, что вызывает ошибку 404 Not Found, т.к. данная ошибка самая распространенная. Так же можно выводить информацию и по другим типам ошибок.
Рассмотрим процесс создания такой страницы для ошибок, которые определяются до выполнения скрипта программы самым сервером Apache.
В служебный файл сервера, который называется .htaccess и чаще всего находится в корне сайта, пишем коды ошибок для которых нужно выводить отдельную страницу и указываем какую именно. При отсутствии данного файла - создайте его.
ErrorDocument 400 /errors.php ErrorDocument 403 /errors.php ErrorDocument 404 /errors.php ErrorDocument 405 /errors.php ErrorDocument 408 /errors.php ErrorDocument 500 /errors.php ErrorDocument 502 /errors.php ErrorDocument 504 /errors.phpВ данном случаем подключаться будет файл errors.php находящийся в корне сайта. Страница должна открываться по ссылке:
http://ваш_сайт/errors.php
При открытии данной страницы по прямой ссылке, конечно, не будет выводиться информация касающаяся кода ошибки.
Учтите, что если вы в разработке используете CMS (например WordPress) или фреймворк (например Yii2), то там, скорее всего, уже есть такая страница (или ее нужно создать и подключить определенным образом).
Пример файл errors.php:
<?php $codes = array( 400 => array('400. Ошибочный запрос', 'Запрос не может быть обработан из-за синтаксической ошибки.'), 403 => array('403. Доступ запрещен', 'Сервер отказывает в выполнении вашего запроса.'), 404 => array('404. Не найдено', 'Запрашиваемая страница не найдена на сервере.'), 405 => array('405. Метод не допускается', 'Указанный в запросе метод не допускается для заданного ресурса.'), 408 => array('408. Время ожидания истекло', 'Ваш браузер не отправил информацию на сервер за отведенное время.'), 500 => array('500. Внутренняя ошибка сервера', 'Запрос не может быть обработан из-за внутренней ошибки сервера.'), 502 => array('502. Плохой шлюз', 'Сервер получил неправильный ответ при попытке передачи запроса.'), 504 => array('504. Истекло время ожидания шлюза', 'Вышестоящий сервер не ответил за установленное время.'), ); if (isset($_SERVER['REDIRECT_STATUS'])){ $status = $_SERVER['REDIRECT_STATUS']; $title = ' '.$codes[$status][0]; $message = $codes[$status][1]; } if(!isset($title)){ $title = $message = ''; } echo '<h2>Внимание! Обнаружена ошибка'.$title.'!</h2> <h4>'.$message.'</h4>';В данном файле вы можете настроить свои стили, разместить меню, контакты администратора и прочее. Приведен упрощенный вариант, который будет выводить основную информацию по ошибке:
