@artyomkin

Как убрать слеши окончательно правильно без гугла и экспериментов?

Что имеем:
DirectorySlash off

RewriteEngine on

RewriteCond %{HTTPS}_%{HTTP_HOST} ^(?|off_(?:www\.)?(.*)|on_www\.(.*)) [NC]
RewriteRule .* https://%1/$0 [R=301,L]

RewriteRule (.*)/$ /$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]


Что нужно, нужно убрать повторяющиеся слеши везде:

https://domain/// => https://domain
https://domain///page => https://domain/page
https://domain/page///page => https://domain/page
https://domain///page/// => https://domain/page
https://domain///page///page => https://domain/page/page
https://domain///page///page/// => https://domain/page/page
https://domain/page///page => https://domain/page/page

как-то так примерно, вроде понятно

Поделитесь полностью рабочим вариантом.
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
shambler81
@shambler81 Куратор тега htaccess
уже задрался писать что RewriteCond %{HTTPS}_%{HTTP_HOST} ^(?|off_(?:www\.)?(.*)|on_www\.(.*)) [NC не нужно и яндекс прекрасно понимает последовательность редиректов. НЕ ВЛИЯЕТ это на СЕО !

RewriteCond %{THE_REQUEST} //
   # Проверяем, повторяется ли слеш (//) более двух раз.
RewriteCond %{QUERY_STRING} !http(s|)://
  # Убедимся что это не урл в  GET
RewriteRule .* /$0 [R=301,L]
   # Исключаем все лишние слеши.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы