Как вырезать из ссылки лишние подразделы кроме последнего?
Добрый день! На старом сайте ссылки на товары каталога вида: site.ru/catalog/section1/section2/.../lastsection/item
Необходимо сделать 301 редирект на url вида: site.ru/catalog/lastsection/item
То есть, от всех разделов и подразделов оставляем только последний, в котором лежит товар. Таким образом, независимо от вложенности, ссылка на товар будет всегда site.ru/catalog/anysection/item.
Как вырезать лишние подразделы, проверяя что один остался? Подскажите пожалуйста. Спасибо!
хоят я бы порекомендовал пересобраь структуру сайта.
все товары собрать в 1 месте на 1 уровне.
А древовидную систему папок и свойст привязывать к этим элементам.
В таком случае у вас совершенно валдиное чпу которое будет давать /catalog/igem3
и любой элемент может лежать в любо месте каталога не нарушая структуру
в таком случае ваши хлебные крошки строятся по этим папкам
Спасибо за совет!
К сожалению, возможности изменить структуру сайта нет, а есть необходимость перенести огромное количество ссылок со старого сайта на новый. Поэтому хотелось бы помощи в составлении правила или регулярки или как еще это можно решить)
Виктор Таран: собственно, действительно, вопрос по вашей ссылке очень похож. Разве что у меня товары всегда вложены минимум в 1 раздел. И нужно удалить все родительские разделы, кроме того, в который вложен сам товар.
RewriteCond %{REQUEST_URI} .*/([^/].+)/([^/].+)(|/)$
RewriteRule ^(.*)$ http://site.ru/%1 [R=301,L]
По идее вот так, но нжуно проверсть
суть отличия что мы добавляем ([^/].+) - то есть - 1 и более но не содержит / а перед ним слеш
Следовательно будет слово но не слеш, и таких будет два до конца.
Так же как вариант у вас я думаю не сильно большой сайт может пара тыс ссылок, если скинет ефайлик экселевский с откуда -куда я покажу как можно сделать легко редиректы уже просто с перечислением нескольких каталогов.