Проблема обнаружилась внезапно и не так давно - мы решили изменить структуру разделов для более понятной и наглядной группировки наших услуг. И выяснился неприятнейший момент - при установке канонической ссылки и адреса детальной страницы по маске #SITE_DIR#/shop/#SECTION_CODE_PATH#/#ELEMENT_CODE#/ любой товар можно открыть как по основному url, так и по урлу его раздела, то есть маске #SITE_DIR#/shop/#SECTION_CODE#/#ELEMENT_CODE#/
Поскольку проблема совершенно не явная, а последствия от неё "на лицо" (каталог переиндексировался Яндексом за четыре дня) было принято решение написать краткий фикс данного бага.
Поскольку проблема совершенно не явная, а последствия от неё "на лицо" (каталог переиндексировался Яндексом за четыре дня) было принято решение написать краткий фикс данного бага.
//редирект для удаления дублей => /section1/element/ or /section2/element/ redirect to /section1/section2/element/ $res = CIBlockElement::GetByID($arResult['ID']); if($ar = $res->GetNext()) { $good_url="/".$ar['CODE']."/"; if ($ar['IBLOCK_SECTION_ID']) { $res = CIBlockSection::GetByID($ar['IBLOCK_SECTION_ID']); if ($ar2 = $res->GetNext()) { $good_url="/".$ar2['CODE'].$good_url; if ($ar2['IBLOCK_SECTION_ID']) { $res = CIBlockSection::GetByID($ar2['IBLOCK_SECTION_ID']); if ($ar3 = $res->GetNext()) $good_url="/".$ar3['CODE'].$good_url; } } } }
Данное решение позволяет решить проблемы с дублированием адресов 1С-Битрикс, вплоть до 3его уровня вложенности