Код |
---|
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'; } } |
Цитата |
---|
Дмитрий Якинцев пишет:
Не знаю как это сделать наиболее "правильно" с точки зрения битрикса, чтобы не было лишних редиректов. Но можно решить "влоб" - создавать регулярку на основе данных об иблоках в таком виде: "CONDITION" => "#^/(catalog|news|articles)/#", вот эту строку можно фрмировать на основе данных из бд и хранить в кеше. |
Цитата | ||
---|---|---|
Dmitry Ban пишет:
Есть один противоестественный способ.
Ну и, соответственно, если инфоблок не найден, нужно делать define('ERROR_404', 'Y'); |