Как через HTACCESS убрать часть урла?

Часто при переносе сайта с одной платформы на другую приходится заботиться о редиректе со старых страниц на новые нужно убрать один уровень урла, например catalog или product.

Ситуация довольно простая, смотрим на решение c помощью нашего любимого htaccess:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css|woff|woff2|ttf) #исключаем из редиректа файлы с данными расширениями
RewriteCond %{REQUEST_URI} ^.*catalog.*     # задаем правило присутствия словосочетания в урле
RewriteRule ^catalog/(.*)$ http://%{HTTP_HOST}/$1? [R=301,L]  # перенапраляем на новый урл 

Преимущество данной конструкции в том, что независимо от вложенности, редирект будет приходить на правильные урлы.

Пример:

site1.com/catalog/split_sistemy

приведет с равным успехом на

site2.com/split_sistemy

или

site2.com/kondicionirovanie/split_sistemy/

в зависимости от структуры ваших урлов.

Отлично срабатывает не только с категориями но и с товарами - это очень круто, т.к. при переносе каталога на другой сайт вложенность может нарушаться, а урл товара все равно найдется!

Самый универсальный редирект на мой взгдяд, позже при наличии времени выложу памятку со значениями mod_rewrite, понимая который можно перенаправить что угодно куда угодно.

Tags: htaccess

 

Хотите поработать с нами?
Пишите или звоните!