Как создать общую страницу для ошибок сайта
Как известно сайт имеет множество перенаправлений при ошибка, будь то неверный запрос к сайту или распространенная ошибка не найденной страницы. Таких основных ошибок около восьми, для всех их создавать отельную страницу не весьма охота, по этому можно создать массив с кодами ошибок и установить якоря перенаправления на указанный вами php документ. Вы все правильно поняли, можно использовать общую страницу для обработки различных ошибок сайта. в данном уроке мы рассмотрим как это можно реализовать.
Как вы, наверное, догадались, мы будем работать с фалом .htaccess, если вы используете систему управления сайтом, то данный файл уже заготовлен системой, если используете самописный сайт то данный файл необходимо создать самостоятельно.
Много различным бесплатных шаблонов вы можете найти на сайте наших партнеров, также имеются и премиум шаблоны с круглосуточной техподдержкой и помощью в настройке:
Шаг 1. .htaccess
Нам необходимо сделать редирект со всех ошибок, на единый файл, для примера страница будет errors.php, для получения перенаправления, необходимо добавить следующие правила в файл .htaccess:
1 2 3 4 5 6 7 8 |
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 |
Таким способом можно перенаправить любую ошибку на единый файл с ошибкой.
Шаг 2. PHP
Нам необходимо создать файл errors.php, который вы должны расположить в корне каталога на вашем сервере.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$status = $_SERVER['REDIRECT_STATUS']; $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 Истекло время ожидания шлюза', 'Вышестоящий сервер не ответил за установленное время.'), ); $title = $codes[$status][0]; $message = $codes[$status][1]; if ($title == false || strlen($status) != 3) { $message = 'Код ошибки не правильный.'; } echo '<h1>Обратите внимание! Обнаружена ошибка '.$title.'!</h1> <p>'.$message.'</p>'; |
Вот и все. Готово!
Материал взят из зарубежного источника. И представлен исключительно в ознакомительных целях.
Читайте также:
Опубликовал Cooper 16.03.2013 в 17:25, в категории PHP. Вы можете следить за комментариями через RSS 2.0. Вы можете перейти в конец записи и оставить комментарий. Пинги запрещены. |