Есть инфоблок со списком поддоменов.
Если зайти на поддомен, которого нет в этом списке, должен отдаваться статус 404.
Нижеприведённый код работает на всём сайте, кроме главной страницы.
К примеру, a.vsesvetodiody.ru/dileram.html - правильно отдаёт 404, а просто a.vsesvetodiody.ru выдаёт пустую страницу, хотя скрипт точно доходит до создания файла 1111111111111111111.txt
В чём может быть проблема?
Если зайти на поддомен, которого нет в этом списке, должен отдаваться статус 404.
Нижеприведённый код работает на всём сайте, кроме главной страницы.
К примеру, a.vsesvetodiody.ru/dileram.html - правильно отдаёт 404, а просто a.vsesvetodiody.ru выдаёт пустую страницу, хотя скрипт точно доходит до создания файла 1111111111111111111.txt
В чём может быть проблема?
Код |
---|
AddEventHandler("main", "OnEpilog", "handler404"); function handler404() { global $USER; global $APPLICATION; $curDir = $APPLICATION->GetCurDir(); $arDir = explode('/', $curDir); $curPage = $APPLICATION->GetCurPage(); if (isset($_SERVER["REAL_FILE_PATH"])) { $arRequest = explode("/", $_SERVER["REDIRECT_URL"]); if ( ( ($_SERVER["REAL_FILE_PATH"] == "/index.php") && (count($arRequest) != 3) ) || ( (count($arRequest) == 3) && (strlen($arRequest[2]) > 0) && (substr($arRequest[2], -5, 5) != ".html") ) ) { define("ERROR_404", "Y"); } } $poddomen=str_replace(".vsesvetodiody.ru","",$_SERVER["HTTP_HOST"]); $poddomen=str_replace("vsesvetodiody.ru","",$poddomen); if(defined('ERROR_404') && ERROR_404 == 'Y') { $template = 'main'; $APPLICATION->RestartBuffer(); $APPLICATION->SetPageProperty("title", "Ошибка 404"); $APPLICATION->SetPageProperty("h1", "Error 404"); $APPLICATION->SetTitle("Error 404"); include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php'); include $_SERVER['DOCUMENT_ROOT'].'/bitrix/templates/'.$template.'/header.php'; include $_SERVER['DOCUMENT_ROOT'].'/include/404_text.php'; include $_SERVER['DOCUMENT_ROOT'].'/bitrix/templates/'.$template.'/footer.php'; } else if ($poddomen) { CModule::IncludeModule('iblock'); $select = Array("NAME","ID","CODE"); $arFilter = Array("IBLOCK_ID"=>2, "CODE" => $poddomen, "ACTIVE" => "Y"); $res = CIBlockElement::GetList(Array("SORT"=>"ASC", "PROPERTY_PRIORITY"=>"ASC"), $arFilter, $select); $poddomen = $res->GetNext(); if(!$poddomen["ID"]) { file_put_contents('1111111111111111111.txt', 1); $template = 'main'; $APPLICATION->RestartBuffer(); $APPLICATION->SetPageProperty("title", "Ошибка 404"); $APPLICATION->SetPageProperty("h1", "Error 404"); $APPLICATION->SetTitle("Error 404"); include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php'); include $_SERVER['DOCUMENT_ROOT'].'/bitrix/templates/'.$template.'/header.php'; include $_SERVER['DOCUMENT_ROOT'].'/include/404_text.php'; include $_SERVER['DOCUMENT_ROOT'].'/bitrix/templates/'.$template.'/footer.php'; } } } |