Решение проблемы с ошибкой 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вместо корректной обработки фильтра - При отключении ЧПУ в настройках фильтра функциональность работает корректно
- Проблема проявляется именно при взаимодействии ЧПУ фильтра с другими функциями каталога (сортировкой)
Это указывает на конфликт между правилами ЧПУ фильтра и общими правилами маршрутизации компонента каталога.