@Zzpro

Как победить ошибку 404 при фильтрации в корне каталога?

Помогите решить пожалуйста проблему, фильтрация в разделах по ajax работает без каких либо проблем, а в корне выдает 404 ошибку в консоли

GET https://сайт.ru/catalog/filter/min_price-to-31/apply/ 404

Причем если зайти на эту страницу, открывается все работает нормально.

catalog.smart.filter:
$APPLICATION->IncludeComponent("bitrix:catalog.smart.filter", "bootstrap_v4", array(
							"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
							"IBLOCK_ID" => $arParams["IBLOCK_ID"],
							"SECTION_ID" => 0,
							"FILTER_NAME" => $arParams["FILTER_NAME"],
							"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"],
							"XML_EXPORT" => "N",
							"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"],
						        'SHOW_ALL_WO_SECTION'=>'Y',
							'SHOW_ALL_WO_SECTION'=> $SHOW_ALL_WO_SECTION,
							"PAGER_PARAMS_NAME" => $arParams["PAGER_PARAMS_NAME"],
							"INSTANT_RELOAD" => $arParams["INSTANT_RELOAD"],
						),
						$component,
						array('HIDE_ICONS' => 'Y')
					);


urlrewrite.php
12 => 
  array (
    'CONDITION' => '#^/catalog/#',
    'RULE' => '',
    'ID' => 'bitrix:catalog',
    'PATH' => '/catalog/index.php',
    'SORT' => 100,
  ), 
 11 => 
  array (
    'CONDITION' => '#^/catalog/filter/(.+?)/apply/#',
    'RULE' => 'SMART_FILTER_PATH=$1&',
    'ID' => '',
    'PATH' => '/catalog/index.php',
    'SORT' => 99,
  ),


script.js фильтра изменил для фильтрации по ajax
//if (modef.style.display === 'none')
                //{
                    modef.style.display = 'inline-block';
                //}
		$.get(
		    BX.util.htmlspecialcharsback(result.FILTER_AJAX_URL), 
		    function (data) {
		        $('.col.ff').html($(data).find('.col.ff').html());
		    }
		);
  • Вопрос задан
  • 845 просмотров
Решения вопроса 1
@Zzpro Автор вопроса
Отключил ЧПУ все работает.

Ответ от тех поддержки bitrix:
Попробуйте, пожалуйста, отключить ЧПУ. Фильтрация выполняется корректно?
Дело в том, что сейчас действительно ЧПУ в умном фильтре не будет работать, если там не передаётся раздел.
У нас есть заявка на эту доработку, но хотелось бы убедиться, что у Вас причина именно в ЧПУ.

Как теперь быть не понятно, самое странное что url работает при заходе по нему, а по ajax нет

Нашел решение самостоятельно https://ftask.ru/2020/04/24/bitrix-если-smart-filt...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
udjin123
@udjin123
PHP, Golang, React
На вскидку вижу что в urlrewrite.php до следующего правила запросы не дойдут, так как первое соответствует в том числе запросам вида /catalog/filter/...... А так же учитывайте что битрикс его при сохранении сортирует по какой то дурацкой логике.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы