Проблема с 301 редиректом в htaccess, добавляется окончание от старой ссылки.
Был произведен редизайн сайта и изменен тип вывода ссылок для адресной строки.
На старом сайте ссылка на страницу товара в каталоге выглядела так: site.com/catalog/233/6546/ — /id-рубрики/id-товара/
На новом: site.com/catalog/rubricname/productname/
Чтобы не выпасть из индекса поисковиков и ещё есть много других ресурсов, которые ссылаются по старым ссылкам, было решено сделать 301 редирект на время, пока сезон в магазине. Потом ссылки будут сняты с редиректа. Решение: И тут возникла проблема. Сначала добавили редирект на рубрику в каталоге, потом уже на список товаров в данной рубрике.
Redirect 301 /catalog/233/ http://site.com/catalog/rubricname/
Redirect 301 /catalog/233/6546/ http://site.com/catalog/rubricname/productname-1/
Redirect 301 /catalog/233/6547/ http://site.com/catalog/rubricname/productname-2/
И в результате при попытке перейти по ссылке http://site.com/catalog/233/6546/ перекидывало на ссылку http://site.com/catalog/rubricname/productname-1/6546/ в конце добавлялось окончание от старой ссылки.
Оказывается нужно было располагать строки редиректов в обратном порядке, от длинных к коротким. То-есть сначала продукты, потом рубрики.
Redirect 301 /catalog/233/6546/ http://site.com/catalog/rubricname/productname-1/
Redirect 301 /catalog/233/6547/ http://site.com/catalog/rubricname/productname-2/
Redirect 301 /catalog/233/ http://site.com/catalog/rubricname/
На старом сайте ссылка на страницу товара в каталоге выглядела так: site.com/catalog/233/6546/ — /id-рубрики/id-товара/
На новом: site.com/catalog/rubricname/productname/
Чтобы не выпасть из индекса поисковиков и ещё есть много других ресурсов, которые ссылаются по старым ссылкам, было решено сделать 301 редирект на время, пока сезон в магазине. Потом ссылки будут сняты с редиректа. Решение: И тут возникла проблема. Сначала добавили редирект на рубрику в каталоге, потом уже на список товаров в данной рубрике.
Redirect 301 /catalog/233/ http://site.com/catalog/rubricname/
Redirect 301 /catalog/233/6546/ http://site.com/catalog/rubricname/productname-1/
Redirect 301 /catalog/233/6547/ http://site.com/catalog/rubricname/productname-2/
И в результате при попытке перейти по ссылке http://site.com/catalog/233/6546/ перекидывало на ссылку http://site.com/catalog/rubricname/productname-1/6546/ в конце добавлялось окончание от старой ссылки.
Оказывается нужно было располагать строки редиректов в обратном порядке, от длинных к коротким. То-есть сначала продукты, потом рубрики.
Redirect 301 /catalog/233/6546/ http://site.com/catalog/rubricname/productname-1/
Redirect 301 /catalog/233/6547/ http://site.com/catalog/rubricname/productname-2/
Redirect 301 /catalog/233/ http://site.com/catalog/rubricname/
Новый комментарийДобавить комментарийНовый комментарий отправлен на модерациюПохожие решения:
Убрать в конце URL знак вопроса
Переадресация c http на https
Переадресация на адрес с «www»
Переадресация на адрес без «www»
Убрать в конце .php
Убрать в конце URL окончание .html
Редирект с больших символов на маленькие
Повторяющиеся слеши в URL
Закрыть сайт паролем в .htaccess
Слеш в конце URL Понравилось решение?
Изменено: 24 11 2021 Просмотров: 25694Не хотите копаться сами?
Починю за 1-3 дня. Без предоплаты — оплата по результату.
15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии