имеется php7.2 nginx 1.7.12 Debian 9
стоит условие на 404 ошибку, в котором при выполнение устанавливается редирект
в 404.php
при таком редиректе выходит error 500.
Если открыть 404.php прямым запросом, то открывается нормально,
Если убрать include и require, ошибка будет от php на несуществующие переменные и классы.
Если инклудить простой файл (любой созданный не имеющий отношения к битриксу), то отрабатывается нормально.
Т.е. ошибка со стороны битрикса.
Подскажите куда дальше копать?
из логов:
стоит условие на 404 ошибку, в котором при выполнение устанавливается редирект
Код |
---|
define('ERROR_PATH_404', '/404.php'); AddEventHandler('main', 'OnEndBufferContent', 'Error_404', 101); function Error_404() { global $APPLICATION; if (!defined('ERROR_404') || ERROR_404 != 'Y') { return; } if ($APPLICATION->GetCurPage() != ERROR_PATH_404) { header('X-Accel-Redirect: '.ERROR_PATH_404); exit(); } } |
Код |
---|
<? include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php'); CHTTP::SetStatus("404 Not Found"); @define("ERROR_404","Y"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("404 Not Found"); ?> <div class="container"> <div class="w-100"> <h1 class="title-404"><?=$APPLICATION->GetTitle();?></h1> </div> <span> страница не найдена или недостаточно прав доступа</span> <?$APPLICATION->IncludeComponent( "bitrix:system.auth.form", "home", Array( "FORGOT_PASSWORD_URL" => "/profile/register.php", "PROFILE_URL" => "/profile/", "REGISTER_URL" => "/profile/register.php", "SHOW_ERRORS" => "Y" ) );?> </div> <? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?> |
Если открыть 404.php прямым запросом, то открывается нормально,
Если убрать include и require, ошибка будет от php на несуществующие переменные и классы.
Если инклудить простой файл (любой созданный не имеющий отношения к битриксу), то отрабатывается нормально.
Т.е. ошибка со стороны битрикса.
Подскажите куда дальше копать?
из логов:
Код |
---|
[error] 2240#2240: *1 rewrite or internal redirection cycle while internally redirecting to "/404.php" while reading response header from upstream, client: ***.***.***.***, server: *********, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.2-fpm.sock", host: "**********", referrer: "http://**********/" |