Редирект с несуществующих страниц пагинации

161
Алексей,
Редирект с несуществующих страниц пагинации

Пример как быстро сделать редирект со страниц вида /?PAGEN_1=999 на последнюю страницу пагинации.

Пример как быстро сделать редирект со страниц вида /?PAGEN_1=999 на последнюю страницу пагинации.

Делается это в шаблоне компонента, в котором есть навигационная цепочка. Например catalog.section.

В result_modifier.php добавляем код:

$cp = $this->__component; // объект компонента

if (is_object($cp)) {
	$arResult['NAV_PAGEN'] = [
		'GET' => $arResult["NAV_RESULT"]->PAGEN, // запрашиваемая страница
		'NUM' => $arResult["NAV_RESULT"]->NavNum, // номер пагинации PAGEN_
		'CNT' => $arResult["NAV_RESULT"]->NavPageCount // возможное кол-во страниц
	];
	$cp->SetResultCacheKeys(array('NAV_PAGEN'));
}

В component_epilog.php добавляем код:

if ($arResult['NAV_PAGEN']['GET'] > $arResult['NAV_PAGEN']['CNT']) {
	LocalRedirect($APPLICATION->GetCurPage(false).'?PAGEN_'.$arResult['NAV_PAGEN']['NUM'].'='.$arResult['NAV_PAGEN']['CNT'], false, '301  Moved Permanently');
}

Всё. После этого будет срабатывать редирект с PAGEN_1=9999 на PAGEN_1=23 (последнюю). Если нужен редирект на первую страницу, то просто укажите в редиректе $APPLICATION->GetCurPage(false), без параметра PAGEN.

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 14 октября 2022
pagen, примеры кода, разработчику, пагинация, seo
Поделиться
Комментарии
Авторизуйтесь чтобы получать уведомления об ответе
Пример как быстро сделать редирект со страниц вида /?PAGEN_1=999 на последнюю страницу пагинации.