Бортовой журнал Ктулху

Битрикс: страница 404

В Битриксе 404 страница реализована. мягко говоря. довольно необычно.

 

По умолчанию ее нет вообще, вместо нее выводится сообщение

bitrix 404

Вместо простых страниц может быть пустая страница с кодом ответа 404.

Задача в том, чтобы настроить нормальную страницу 404 в любых компонентах и разделах.

Для начала в init.php добавим код обработчика ошибки 404.

----- CODE -----

AddEventHandler('main', 'OnEpilog', '_Check404Error',1);
function _Check404Error()
{
if (defined("ERROR_404") && ERROR_404=="Y")
{
global $APPLICATION;
$APPLICATION->RestartBuffer();
// include $_SERVER['DOCUMENT_ROOT']."/bitrix/templates/".SITE_TEMPLATE_ID."/header.php";
require ($_SERVER["DOCUMENT_ROOT"]."/404.php");
// include $_SERVER['DOCUMENT_ROOT']."/bitrix/templates/".SITE_TEMPLATE_ID."/footer.php";
}
}

----- /CODE -----

Во всех компонентах настраиваем страницу 404 на /404.php

bitrix catalog 404

Содержимое 404.php

----- CODE -----
define('STOP_STATISTICS', true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Ошибка 404 - страница не найдена");
header("HTTP/1.0 404 Not Found");
$GLOBALS['APPLICATION']->RestartBuffer();

echo "<h1>Ошибка 404 - страница не найдена</h1>";
----- /CODE -----