Задать вопрос
@AgeWalker

Как в файле htacces в RewriteCond прописать условие редиректа нескольких / (слешей) на 1?

Добрый день!
Встал вопрос редиректа нескольких слешей на один.
Вот этим кодом мы смогли убрать лишние / (слеши) в конце URL:
# Убираем повторяющиеся слеши (/) в URL
RewriteCond %{THE_REQUEST} ([^\s]*)\/{2,}(\?[^\s]*)?
RewriteRule (.*) %1 [R=301,L]
# END Убираем повторяющиеся слеши (/) в URL

То есть вместо URL:
web.com/page/superpage/////
мы получили:
web.com/page/superpage/

Теперь вопрос встал как убрать / (слеши) и из нутри URL, где бы они ни были.
То есть вот такой URL:
web.com/page//////superpage/ и web.com/page//////superpage//////
Становились
web.com/page/superpage/

Верхний код убирает лишь слеши в конце URL, но не в середине.
  • Вопрос задан
  • 44 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
shambler81
@shambler81 Куратор тега htaccess
https://klondike-studio.ru/standards/standartnyy-h...
Подробно писал тут.
Если прям по задаче то
RewriteCond %{THE_REQUEST} //
   # Проверяем, повторяется ли слеш (//) более двух раз.
RewriteCond %{QUERY_STRING} !http(s|)://
  # Убедимся что это не урл в  GET
RewriteRule .* /$0 [R=301,L]
   # Исключаем все лишние слеши.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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