Из-за чего фильтр в корне папки catalog открывает 404?
Ссылка скопирована
По вводным: вывел фильтр в файле sections.php комплексного компонента catalog
<?$APPLICATION->IncludeComponent( "bitrix:catalog.smart.filter", "", array( "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], "IBLOCK_ID" => $arParams["IBLOCK_ID"], "SECTION_ID" => 0, "FILTER_NAME" => $arParams["FILTER_NAME"], "PRICE_CODE" => $arParams["~PRICE_CODE"], "CACHE_TYPE" => $arParams["CACHE_TYPE"], "CACHE_TIME" => $arParams["CACHE_TIME"], "CACHE_GROUPS" => $arParams["CACHE_GROUPS"], "SAVE_IN_SESSION" => "N", "FILTER_VIEW_MODE" => $arParams["FILTER_VIEW_MODE"], "SECTION_TITLE" => "NAME", "SECTION_DESCRIPTION" => "DESCRIPTION", 'HIDE_NOT_AVAILABLE' => $arParams["HIDE_NOT_AVAILABLE"], "TEMPLATE_THEME" => $arParams["TEMPLATE_THEME"], 'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'], 'CURRENCY_ID' => $arParams['CURRENCY_ID'], "SEF_MODE" => $arParams['SEF_MODE'], "SEF_RULE" => "/catalog/filter/#SMART_FILTER_PATH#/apply/", "SMART_FILTER_PATH" => $_REQUEST["SMART_FILTER_PATH"], "PAGER_PARAMS_NAME" => $arParams["PAGER_PARAMS_NAME"], "INSTANT_RELOAD" => $arParams["INSTANT_RELOAD"], "SHOW_ALL_WO_SECTION" => "Y" ), $component, array('HIDE_ICONS' => 'Y') );?>
По вводным: в правилах обработки адресов задал правило
18 => array ( 'CONDITION' => '#^/catalog/filter/([a-z0-9_\-\/]+)/apply/#', 'RULE' => 'SMART_FILTER_PATH=$1&', 'ID' => '', 'PATH' => '/catalog/index.php', 'SORT' => 90, ),
По вводным: но при сортировке открывается 404, если выключить вывод 404 страницы, то при просмотре компонента выводится section.php, если отключить ЧПУ в фильтре, то все работает.
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
VPN
Как правильно настроить vless для Android TV?
1 ответ
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
1 ответ
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
1 ответ
Telegram
Как добиться, чтобы Telegram прислал мне именно смс код, а не через звонок его диктовал?
1 ответ

В Битриксе умный фильтр в корне
/catalog/часто отдаёт 404, если фильтр подключён вsections.php, но в параметрах комплексного компонента не совпадают URL-шаблоны, имя фильтра или правила ЧПУ. Сам компонентcatalog.smart.filterможет отрисоваться, но при применении фильтра Битрикс не понимает URL и считает его несуществующим.Проверьте три вещи. Первая —
FILTER_NAMEдолжен совпадать у фильтра и списка товаров:"FILTER_NAME" => "arrFilter"
И в
catalog.sectionдолжно быть то же имя:"FILTER_NAME" => "arrFilter"
Вторая — для корня каталога обычно нужен корректный
SEF_RULEили работа внутри комплексного компонента. Если фильтр стоит отдельно, проверьте параметры:"SEF_MODE" => "Y", "SEF_RULE" => "/catalog/filter/#SMART_FILTER_PATH#/apply/"
Третья — в настройках комплексного компонента должны быть заданы шаблоны URL для фильтра:
"SEF_URL_TEMPLATES" => array( "sections" => "", "section" => "#SECTION_CODE_PATH#/", "smart_filter" => "#SECTION_CODE_PATH#/filter/#SMART_FILTER_PATH#/apply/", )
Если фильтр нужен именно в корне без раздела, не все шаблоны каталога это нормально поддерживают. Иногда проще сделать отдельную страницу подборки или использовать раздел “все товары” с реальным SECTION_ID.
После правки обязательно сбросьте кеш компонента и проверьте, нет ли в
urlrewrite.phpстарых конфликтующих правил. Также смотрите, не делает ли шаблон принудительныйCHTTP::SetStatus('404'), если не найден раздел.Итог: 404 появляется не из-за самого фильтра, а из-за несогласованных SEF-шаблонов и контекста раздела. Сведите к одному
FILTER_NAME, проверьтеsmart_filterURL template и не используйте корень каталога как раздел, если шаблон ожидает SECTION_CODE_PATH.