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

    Это указывает на конфликт между правилами ЧПУ фильтра и общими правилами маршрутизации компонента каталога.