ЧПУ 1С-Битрикс

Друзья! Есть такая проблема.

Есть интернет-магазин, использующий комплексный компонент каталога, в котором включена поддержка ЧПУ. Почему-то она работает следующим образом, что если, например, у товара адрес /catalog/razdel/tovar.11111/, то этот же товар доступен по адресу /catalog/blah-blah-blah/tovar.11111/ при этом в blah-blah-blah может быть все, что угодно. Как можно это убрать, или почему это нельзя сделать?
  • Вопрос задан
  • 7245 просмотров
Решения вопроса 1
HelsinG
@HelsinG
Web dev
Просто товар может принадлежать к нескольким категориям. Это по умолчанию так устроено.
И Если вы находиться в разделе «blah-blah-blah» то и ссылка будет с этого раздела. Для SEO это не очень хорошо.
Решается это путем добавления кода в файл result_modifier.php в шаблоне вашего каталога(конкретно catalog.section)
<?php
$iCnt = sizeof($arResult['ITEMS']);
for ($i=0; $i < $iCnt; $i++) { 
	$rsItem = CIBlockElement::GetByID($arResult['ITEMS'][$i]['ID']);//достаем данные элемента
	$arItem = $rsItem->GetNext();
	$rsSec = CIBlockSection::GetByID($arItem['IBLOCK_SECTION_ID']);//Достаем данные секции
	$arSec = $rsSec->GetNext();
	$arResult['ITEMS'][$i]['DETAIL_PAGE_URL'] = $arParams['DETAIL_URL'];//Параметры компонента
	$arResult['ITEMS'][$i]['DETAIL_PAGE_URL'] = str_replace('#SECTION_CODE#', $arSec['CODE'], $arResult['ITEMS'][$i]['DETAIL_PAGE_URL']);//Меняем код секциии
	$arResult['ITEMS'][$i]['DETAIL_PAGE_URL'] = str_replace('#ELEMENT_CODE#', $arItem['CODE'], $arResult['ITEMS'][$i]['DETAIL_PAGE_URL']);//Меняем код товара
}?>


Код писался на коленках, но т.к. работает менять не хочется.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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