Как удалить хвост в урл при редиректе в htaccess?

Ссылка скопирована
1 ответ

Здравствуйте.
нужна помощь - сделать редирект

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]

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
2
Ирина WP Ответ

В вашем случае нужно не писать отдельный редирект для каждой страницы, а удалить одинаковый хвост articles-typical.html в конце URL. Для Apache это делается одним правилом в .htaccess.RewriteEngine On
RewriteRule ^(.+)/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 redirects
RewriteEngine 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.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно