Загрузка страницы..
.htaccess Редирект. Как удалить несколько слешей в урле (URL)
Иногда «по случайности» в URL могут появится по несколько слешей в таких необходимо делать 301 редирект на страницу с одним слешем
.htaccess Редирект. Как удалить несколько слешей в урле (URL)
2016-03-03T15:03 03 мар 2016 15:03
Просмотров: 8553

Иногда «по случайности» в URL могут появится по несколько слешей, например:
www.site.com/catalog////page-1.html.
В таких необходимо делать 301 редирект на страницу с одним слешем
www.site.com/catalog/page-1.html :

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

Аналогично, можно склеить в урле несколько дефисов в один: с
www.site.com/catalog/page—1.html на www.site.com/catalog/page-1.html:

RewriteCond %{REQUEST_URI} ^(.*)--(.*)$
RewriteRule . %1-%2 [R=301,L]

Если нужно избавиться от слешей вначале, то можно дописать этот код:

RewriteCond %{THE_REQUEST} ^[A-Z]+\s//+(.*)\sHTTP/[0-9.]+$
RewriteRule .* http://%{HTTP_HOST}/%1 [R=301,L]

Полный код в файле .htaccess:

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On

  RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
  RewriteRule . %1/%2 [R=301,L]

  RewriteCond %{THE_REQUEST} ^[A-Z]+\s//+(.*)\sHTTP/[0-9.]+$
  RewriteRule .* http://%{HTTP_HOST}/%1 [R=301,L]
</ifModule>


Комментарии: 2

комментарий Эрик
Эрик
2019-08-04T02:4004 авг 2019 02:40
RewriteCond %{THE_REQUEST} ^[A-Z]+s//+(.*)HTTP/[0-9.]+$ RewriteRule .* https://%{HTTP_HOST}/%1 [R=301,L] - Вот этот редирект единственный сработал с видом site.ru/////// И то, если обратите внимание, его я чуть изменил. По другому ни как не хотел убирать лишние слеши.
комментарий Михаил
Михаил
2016-03-18T11:0918 мар 2016 11:09
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

Не будет работать с видом: site.ru///

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

up
Яндекс.Метрика Яндекс.Метрик