htaccess: редирект html в конце урла

Работая с разными cms можно много чего узнать. Например бывает такое, что часть урлов формируется со «слешом» на конце или без него, а часть — с .html. Но самое любопытное, когда один и тот же урл доступен по адресу и со слешом и с .html, например: site.com/katalog/ и site.com/katalog.html — и в итоге мы получаем дубль такой страницы как «каталог» и думаем, почему же она не лезет даже в тридцатку?) Решение есть!

301 редирект, добавляющий .html в конце урла

Данное регулярное выражение — добавляет .html  в конец урла путем 301 перенаправления

RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1.html [R=301,L]
RewriteRule ^(.*)/$ /$1.html [R=301,L]

А это — «обрезает» хвост .html. (Пример: со страницы /uslugi.html на /uslugi)

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^.]+)\.html [NC]
RewriteRule ^ /%1/ [R=301,L]


Различные варианты регулярок есть тут: настройка редиректов для cms Bitrix — использовать которые можно не только для этой Cms

Добавить комментарий

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