Единая страница ошибок сайта — настройка

Любой сайт имеет огромное количество редиректов, которые могут вызвать ошибку запроса. Чаще всего такая проблема возникает в результате неверного указания адреса интернет-ресурса. Всего существует 8 основных причин возникновения ошибки, и делать отдельную страницу для каждой ошибки не слишком целесообразно. Поэтому разработчики предпочитают создавать массив с кодами различных ошибок и устанавливать якорь редиректа на необходимый PHP-документ. Таким образом, у разработчиков есть возможность реализовать единую страницу, на которой будут обрабатываться все возникающие ошибки.

Для этого используется локальный конфигурационный файл .htaccess. Разработчики, использующие систему управления сайтом, могут воспользоваться файлом, который предварительно создан этой системой. Если создается самописный ресурс, то разработчику нужно самостоятельно создать файл .htaccess.

Настройка htaccess

Разработчик должен создать редирект всех ошибок на общий файл. Таковым может быть, например, страница error.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

Настройка PHP

Остается только лишь создать файл error.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>';


Теги:
0

Оставить своё мнение

Ваш e-mail не будет опубликован. Обязательные поля помечены *