29 сен 2015
Как создать общую страницу для ошибок сайта
Nik Категория: Web-Мастеру » Уроки
У нас вы можете скачать бесплатно Как создать общую страницу для ошибок сайта .

Данный материал предоставлен сайтом Skripter.info исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Как создать общую страницу для ошибок сайта

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

Как вы, наверное, догадались, мы будем работать с фалом .htaccess, если вы используете систему управления сайтом, то данный файл уже заготовлен системой, если используете самописный сайт то данный файл необходимо создать самостоятельно.

Шаг 1. .htaccess

Нам необходимо сделать редирект со всех ошибок, на единый файл, для примера страница будет errors.php, для получения перенаправления, необходимо добавить следующие правила в файл .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


Таким способом можно перенаправить любую ошибку на единый файл с ошибкой.

Шаг 2. PHP

Нам необходимо создать файл errors.php, который вы должны расположить в корне каталога на вашем сервере.

$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>';


Вот и все. Готово!










Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
SibWeb | 30 сентября 2015 03:23 | (55|-6)
  • Группа: Журналисты |
  • Комментарий: 1 (ссылка)

почему нет в коде заголовком? ведь это скажется плохо для поисковых систем


--------------------
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.