@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());
		    }
		);
  • Вопрос задан
  • 1168 просмотров
Решения вопроса 1
@Zzpro Автор вопроса
Отключил ЧПУ все работает.

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

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

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

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

Похожие вопросы