@alenev

Как исключить из 301 редиректа url с определенной частью?

В htaccess вот такой строчкой все страницы с .html в конце направляются 301 редиректом на их аналог без .html
RedirectMatch 301 (.*)\.html$ /$1/

Мне нужно чтобы это правило не срабатывало для ссылок которые имеют составляющую .../order/xxx.html. Вот такой вариант у меня не работает:
RewriteCond %{REQUEST_URI} !^/order
RewriteRule ^(.*)\.html$ /$1/ [R=301,L]

Такая вариация исключения тоже не работает:
RewriteCond %{REQUEST_URI} !^/order\.html$

Подскажите, пожалуйста, как правильно прописать исключение.
  • Вопрос задан
  • 856 просмотров
Решения вопроса 2
@dodo512
RedirectMatch 301 ^((?:[^/]*/)++(?<!/order/).*)\.html$ $1/


RewriteEngine On

RewriteCond %{REQUEST_URI} !/order/[^/]+$
RewriteRule ^(.*)\.html$ /$1/ [R=301,L]
Ответ написан
@alenev Автор вопроса
Подскажите еще, пожалуйста, как добавить в условие исключения вот такой вариант части ссылки "contacts"?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы