Добрый день.
Имеется страница /404.php
Имеется обработчик:
Код |
---|
class RequestHandler
{
/**
* Адрес 404 страницы
*/
const PAGE_404 = '/404.php';
/**
* Показывает 404 страницу при необходимости
* @global $APPLICATION CMain
*/
public static function Show404IfNeeded()
{
global $APPLICATION;
$isRedirectNeeded = !defined('ADMIN_SECTION') && ($APPLICATION->GetCurPage() != self::PAGE_404);
$isError404 = (defined('ERROR_404')) && (ERROR_404 == 'Y')
|| (function_exists('http_response_code') && http_response_code() == 404);
if ($isRedirectNeeded && $isError404 && file_exists($_SERVER['DOCUMENT_ROOT'] . self::PAGE_404)) {
if (!defined('ERROR_404')) {
define('ERROR_404', 'Y');
}
$APPLICATION->RestartBuffer();
include($_SERVER['DOCUMENT_ROOT'] . SITE_TEMPLATE_PATH . '/header.php');
echo "==========";
include($_SERVER['DOCUMENT_ROOT'] . self::PAGE_404);
include($_SERVER['DOCUMENT_ROOT'] . SITE_TEMPLATE_PATH . '/footer.php');
}
}
}
|
Код |
---|
$eventManager->addEventHandler('main', 'OnEpilog', array('Pravpunkt\Handler\RequestHandler', 'Show404IfNeeded')); |
Но дело в том, что перенаправление не работает, если в urlrewrite.php присутствуют следующие правила:
Код |
---|
array(
"CONDITION" => "#^/#",
"RULE" => "",
"ID" => "bitrix:form.result.new",
"PATH" => "/local/templates/pravpunkt/header.php",
"SORT" => "100",
),
array(
"CONDITION" => "#^/#",
"RULE" => "",
"ID" => "bitrix:form.result.new",
"PATH" => "/ajax/form.php",
"SORT" => "100",
),
array(
"CONDITION" => "#^/#",
"RULE" => "",
"ID" => "bitrix:form.result.new",
"PATH" => "/local/templates/pravpunkt/components/bitrix/news/uslugi/news.php",
),
array(
"CONDITION" => "#^/#",
"RULE" => "",
"ID" => "bitrix:form.result.new",
"PATH" => "/local/templates/pravpunkt/components/bitrix/news/docs/news.php",
"SORT" => "100",
),
array(
"CONDITION" => "#^/#",
"RULE" => "",
"ID" => "bitrix:form.result.new",
"PATH" => "/index.php",
),
array(
"CONDITION" => "#^/#",
"RULE" => "",
"ID" => "bitrix:form.result.new",
"PATH" => "/local/templates/pravpunkt/components/bitrix/news.detail/uslugi/template.php",
"SORT" => "100",
),
array(
"CONDITION" => "#^/#",
"RULE" => "",
"ID" => "bitrix:form.result.new",
"PATH" => "/local/components/webkm/useful.list/templates/services/template.php",
"SORT" => "100",
),
|
Если их закомментить, то всё работает тип-топ, если заново включить, то при переходе по несуществующему адресу наблюдается белый лист.
Для чего вообще нужны правила с "CONDITION" => "#^/#", , можь их снести нафиг ?