header

404

Настройка компонента и страницы 404

Во первых перейдите к настройкам вашего компонента (обычно это bitrix.catalog или bitrix.news), блоке «настройки 404 ошибки» отметьте галочку «Устанавливать статус 404».

Затем в файл /bitrix/php_interface/init.php добавьте следующий код:
    
AddEventHandler("main", "OnEpilog", "error_page");
function error_page()
{
    $page_404 = "/404.php";
    GLOBAL $APPLICATION;
    if(strpos($APPLICATION->GetCurPage(), $page_404) === false && defined("ERROR_404") && ERROR_404 == "Y")
    {
        $APPLICATION->RestartBuffer();
        CHTTP::SetStatus("404 Not Found");
        include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/header.php");
        include($_SERVER["DOCUMENT_ROOT"].$page_404);
        include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/footer.php");
        die();
    }
}

в файле /404.php

$APPLICATION->SetTitle("404 Not Found");
$APPLICATION->SetPageProperty("title", "404 Страница не найдена");
$APPLICATION->SetPageProperty("description", "404 Нет такой страницы :(");


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Текст для разных языковых версий сайта (русский - в корне, английский - в папке /en/)

<? if (substr($APPLICATION->GetCurDir(), 0, 4) == '/en/') { ?>
    <div style="margin:25px 0;">
        404 Page not found
    </div>
    <div>
        The page you requested may have been deleted or moved. <a href="/en/">Go back to the main page?</a>
    </div>
<? } else { ?>
    <div style="margin:25px 0;">
        404 Страница не найдена
    </div>
    <div>
        Возможно запрашиваемая вами страница была удалена или перемещена. <a href="/">Вернуться на главную?</a>
    </div>
<? } ?>


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Для компонента news.list, если в несуществующем разделе вываливается весь список новостей без фильтрации

В настройках выставить параметр «Строгая проверка раздела».
Или в коде вызова компонента:
"STRICT_SECTION_CHECK" => "Y",


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Возврат к списку