Страница 404 (Страница не найдена)
Когда открывается несуществующая страница, то выполняется файл 404.php.
// 404.php include_once $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php'; CHTTP::SetStatus('404 Not Found'); define('ERROR_404', 'Y'); require $_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php'; $APPLICATION->SetTitle('Страница не найдена'); # Вёрстка страницы 404 require $_SERVER['DOCUMENT_ROOT'].'/bitrix/footer.php';
Если нет элемента или раздела инфоблока, то просто выводится текст «элемент не найден». Если надо выводить страницу 404, то в файле bitrix/php_interface/SITE_ID/init.php надо добавить следующий код:
// bitrix/php_interface/SITE_ID/init.php AddEventHandler('main', 'OnEpilog', '_Check404Error', 1); function _Check404Error() { if (defined('ERROR_404') && ERROR_404 == 'Y') { global $APPLICATION; $APPLICATION->RestartBuffer(); include $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/header.php'; include $_SERVER['DOCUMENT_ROOT'].'/404.php'; include $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/footer.php'; } }
Также код выше позволяет выводить страницу 404, просто создав константу ERROR_404
.
// Вывести страницу 404 define('ERROR_404', 'Y'); require $_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php';
Выводить текущую страницу как 404
Открывать текущую страницу со статусом 404 можно через метод CHTTP::SetStatus()
.
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); // Вывести страницу со статусом 404 CHTTP::SetStatus('404 Not Found');
Поддержать автора