Здравствуйте, как реализовать ошибку 404 на сайте битрикс с торговым каталогом?
например если вот такой путь:
[URL=https://site.ru/catalog/dfdfdf/]https://site.ru/catalog/dfdfdf/[/URL]
или [URL=https://site.ru/catalog/CATEGORY_NAME/dfdfdf/]https://site.ru/catalog/CATEGORY_NAME/dfdfdf/[/URL]
или [URL=https://site.ru/catalog/CATEGORY_NAME/SUBCATEGORY_NAME/dfdfdf/]https://site.ru/catalog/CATEGORY_NAME/SUBCATEGORY_NAME/dfdfdf/[/URL]
Пробовал сделать вот так, добавляя этот код init.php
[CODE]AddEventHandler('main', 'OnEpilog', '_Check404Error', 1);
function _Check404Error(){
if(defined('ERROR_404') && ERROR_404=='Y' || CHTTP::GetLastStatus() == "404 Not Found"){
GLOBAL $APPLICATION;
$APPLICATION->RestartBuffer();
require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/header.php';
require $_SERVER['DOCUMENT_ROOT'].'/404.php';
require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/footer.php';
}
}
[/CODE]или даже так:[CODE]if(stripos($_SERVER['REQUEST_URI'], '/catalog/')!==false){ //print_r($_SERVER['REQUEST_URI']);
preg_match_all('#\/catalog\/([\.\-0-9a-zA-Z]+)(/?)([^/]*)#i', $_SERVER['REQUEST_URI'], $out, PREG_PATTERN_ORDER);
if($out[1][0]){
if(count(getSectionByCode(11, $out[1][0]))){
}else{
// GLOBAL $APPLICATION;
$APPLICATION->RestartBuffer();
require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/header.php';
require $_SERVER['DOCUMENT_ROOT'].'/404.php';
require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/footer.php';
}
}
}[/CODE]
Но не помогает! Все равно отображается список категорий каталога и ответ сервера 200.
Во втором варианте кода, вообще почему то 500 ошибка!
Не понимаю почему в Битрикс такие сложности со стандартным функционалом, это же коммерческая CMS !
Помогите разобраться с этой мутной историей, уже многократно с ней сталкиваюсь но рабочего варианта, котрый бы работал везде и стандартно я так и не нашел!