Как удалить хвост в урл при редиректе в htaccess?
Здравствуйте.
нужна помощь - сделать редирект
1. http://test.ru/services/obzornye-ekskursii/articles-typical.html --> http://test.ru/services/obzornye-ekskursii/ 2. http://test.ru/services/prirodovedcheskie-ekskursii/articles-typical.html --> http://test.ru/services/prirodovedcheskie-ekskursii/ 3. http://test.ru/services/tematicheskie-ekskursii/articles-typical.html --> http://test.ru/services/tematicheskie-ekskursii/ |
1. http://test.ru/services/obzornye-ekskursii/articles-typical.html --> http://test.ru/services/obzornye-ekskursii/ 2. http://test.ru/services/prirodovedcheskie-ekskursii/articles-typical.html --> http://test.ru/services/prirodovedcheskie-ekskursii/ 3. http://test.ru/services/tematicheskie-ekskursii/articles-typical.html --> http://test.ru/services/tematicheskie-ekskursii/
т.е. убрать хвосты
знаю, что есть уже несколько ответов на похожий вопрос, но там другие задачи
нужен шаблон для многих существующих и будущих таких ссылок. Все они в категории services/, это можно зафиксировать
при сохранении этого вопроса , удалились слэши в конце урлов. а мне они нужны
Дополнительные вопросы
Нужно разобраться откуда они взялись и исправить это, а не ставить костыли.
А чтобы тут ссылки не преобразовывались нужно использовать правильное форматирование - оборачивать в код.
Ответы:
RewriteEngine On RewriteRule ^(services/.+/)articles-typical.html /$1 [R=301,L] |
RewriteEngine On RewriteRule ^(services/.+/)articles-typical.html /$1 [R=301,L]
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
В вашем случае нужно не писать отдельный редирект для каждой страницы, а удалить одинаковый хвост
articles-typical.htmlв конце URL. Для Apache это делается одним правилом в.htaccess.RewriteEngine OnRewriteRule ^(.+)/articles-typical.html$ /$1/ [R=301,L]Что делает правило: берёт любую часть пути до
/articles-typical.htmlи редиректит на эту же часть с завершающим слэшем. Например:/services/obzornye-ekskursii/articles-typical.html→/services/obzornye-ekskursii/;/services/tematicheskie-ekskursii/articles-typical.html→/services/tematicheskie-ekskursii/.Если сайт работает на WordPress, правило нужно ставить выше стандартного блока WordPress:# custom redirectsRewriteEngine On
RewriteRule ^(.+)/articles-typical.html$ /$1/ [R=301,L]
# BEGIN WordPress
...Если нужно сохранить query string, Apache по умолчанию его сохранит. Если хотите принудительно убрать параметры, добавьте
?в конец назначения:RewriteRule ^(.+)/articles-typical.html$ /$1/? [R=301,L]Перед массовым включением 301 проверьте на 2-3 URL через браузер или curl, чтобы не получить цепочки редиректов. Если это временная проверка, сначала можно поставитьR=302, убедиться, что всё правильно, а потом заменить на301.