initrd0
@initrd0
Это я =)

Как убрать слеш в конце домена?

Добрый день.

Есть дубли страниц:
domain.ru/
domain.ru///
domain.ru/////

Хочется сделать domain.ru. Если в конце домена появляется слеш, переадресовывать на домен без слеша (пример как надо - https://informgram.ru////, как есть - https://ya.ru/, https://ya.ru///, https://ya.ru/////).

Перепробовал множество способов из Интернета - не работает ни один (хотя на том же Тостере есть ответы, которые судя по комментариям помогали). Может ли это быть связано с тем, что какие-то настройки в OpenServer? Даже если и связано, требуется понять, что в конфиге мешает.
  • Вопрос задан
  • 403 просмотра
Пригласить эксперта
Ответы на вопрос 2
SagePtr
@SagePtr
Еда - это святое
Никак, хотя бы один слэш должен быть, означающий корень. URI пустым не может быть. Другое дело - браузер обычно показывает в адресной строке без слэша, если URI = /, но это чисто визуальные особенности, которые ни на что не влияют. Вот несколько слэшей можно отловить к примеру по такой регулярке: ^//+ и переадресовывать с убиранием лишних.
Ответ написан
<code>RewriteCond %{THE_REQUEST} //
   # Проверяем, повторяется ли слеш (//) более двух раз.
RewriteCond %{QUERY_STRING} !http(s|)://
  # Убедимся что это не урл в  GET
RewriteRule .* /$0 [R=301,L]
   # Исключаем все лишние слеши.</code>

Последний слеш удалить нельзя он обязан быть
Ответ написан
Ваш ответ на вопрос

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

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