@pasib

Как избавиться от дублей разделов в 1С-Битрикс?

Использую последней релиз 17 версии 1С-Битрикс.
Для страниц элементов Битрикс позволяет прописать канонические ссылки.
Однако, имеются дубли страниц разделов, как для них прописать каноническую ссылку
(как прописать атрибут rel="canonical")?
  • Вопрос задан
  • 1182 просмотра
Пригласить эксперта
Ответы на вопрос 3
я сделал просто
1. закрыл все фильтры и пейдженацию под аякс
2. риал каноникал не на разделы а везде где есть гет запрос на страницу без него.
Ну а чтоб избавиться от дублей разделов множественной привязки товара по свойствам.
то тут просто
ложешь товары в 1 инфоблок
а свояства вяжешь как дерево секций.
В таком случае урл товара всегда будет одинаковый. /catalog/item1
хотя до этого в негопришли по ссылкам
/holodilnik/krasniy
/russian/holodilnik/big
Ну и поработай с роботс .txt
Ответ написан
Комментировать
@pasib Автор вопроса
Виктор, вы приводите пример одного и того же товара в разных разделах.
А в моем случае раздел один и тот же, только адреса отличаются буквами прописные/строчные. Вот к примеру:

sibl.ru/catalog/Cypress-kommutatoryi.html
sibl.ru/catalog/cypress-kommutatoryi.html
Ответ написан
Комментировать
AlexeyGfi
@AlexeyGfi
YouTube >>> Битриксоид из Колхоза
Насколько я понимаю, это будет ручное указание.
Я бы:
1. Завёл пользовательское свойство разделу, строка. Например UF_CANONICAL_TO.
2. Прописал тем разделам, которые нужно «склеить», адрес канонической страницы в это свойство.
3. В шаблоне компонента (в его папке, имеется в виду) создал component_epilog.php (чтобы кеш не перебивал мне добавление строки) и там проверял: если свойство установлено, прописывал каноникал.

[+]
Добавить свою строку в шапку изнутри:
\Bitrix\Main\Page\Asset::getInstance()->addString( '<link rel="canonical" href="УРЛ" />' );


[+]
Чтобы «пробросить» arResult-параметры в component_epilog:
в шаблоне компонента создаём result_modifier.php и внутри код:
$cp = $this->__component; // объект компонента

if (is_object($cp)) {
    $cp->SetResultCacheKeys( array_keys( $arResult ) );
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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