@kelya94

Редирект страниц товаров в Bitrix и циклическая переадресация?

Есть страницы товаров: https://site.ru/katalog/название-раздела/название-товара/
И страницы брендов: https://site.ru/katalog/название-раздела/brand-название-бренда/

Необходимо сделать редирект товаров на такой формат: https://site.ru/katalog/product/название-товара/

Написал редирект такого вида:
RewriteRule ^(.*)katalog/(.*)/(.*)/$ https://site.ru/katalog/product/$3/ [R=301,L]
но возникает циклическая переадресация, т.к. с katalog на katalog перенаправление возникает

Как можно решить эту проблему, при этом не затронув страницы брендов?
  • Вопрос задан
  • 482 просмотра
Решения вопроса 1
@dodo512
RewriteRule ^katalog/(?!product/)[^/]+/(?!brand-)([^/]+)/$ https://site.ru/katalog/product/$1/ [R=301,L]

Или
RewriteCond $2 !=product
RewriteCond $3 !^brand-
RewriteRule ^(katalog)/([^/]+)/([^/]+)/$ https://site.ru/$1/product/$3/ [R=301,L]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
страница товара не может находиться в категории " бренд" поскольку она может быть привязана сразу к нескольким категориям

Например:
карсный /  для дома/ две дверцы/1товар
зеленый /  для дома/ две дверцы/1товар
Холодильник /   дешевый/размер 1x2/  две дверцы/ со скидкой
Встраиваемый/товар
И тд

Как вы понимаете все это категории к которым он привязан
А урл естественно не может быть таким поскольку это канибализация запросов не уникальный урл и тд и тп
А должно быть так
/catalog/1товар
В таком случае все разделы будут строиться секциями а товар всегда будет иметь один урл, при том самый короткий из возможных, в идеале /1товар но это нестандарт для битрикс.
А то что вы сделали это шляпа.
Из плохих урлов вы собрали еще хуже, да в добавок еще и потеряли в весе страницы поскольку 301 его почти не передает, уже лет так 5. если и передает то малую часть. ПФ на дворе ващет.

Теперь ответ
RewriteCond %{REQUEST_URI} !katalog/product$
RewriteRule ^katalog/(.*+[^/])/(.+[^/])/$ https://site.ru/katalog/product/$2/ [R=301,L]


Условие если RewriteCond
! - отрицание
Ответ написан
Ваш ответ на вопрос

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

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