Настройка .htaccess

Настройка .htaccess

Сервисы проверки редиректов:
https://web-tool.org/check-redirect/
https://redirectchecker.com/#responce
https://ibox.tools/redirect-checker

Избавиться от слешей вначале урла

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

Убираем слэши в конце урла /blog////

RewriteCond %{THE_REQUEST} // 
# Проверяем, повторяется ли слеш (//) более двух раз. 
RewriteRule .* /$0 [R=301,L] 
# Исключаем все лишние слеши.

Если код выше не сработал, то скорее всего сайт работает на Битриксе в связке FastCGI (Nginx + PHP-FPM), и правила в .HTACCESS для него пустой звук

#Добавляется слеш в конец url
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !\.xml
   RewriteCond %{REQUEST_URI} !(.*)/$
   RewriteRule ^(.*[^/])$ $1/ [L,R=301]
#редирект с www на без-www
 RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
 RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

 #редирект с http на https
 RewriteCond %{HTTPS} off
 RewriteCond %{HTTP:X-Forwarded-Proto} !https
 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# добавляем / в конце алиасов
    RewriteCond %{REQUEST_URI} ^(.*)/$
    RewriteRule .* - [L]

    RewriteCond %{ENV:REDIRECT_STATUS} 200
    RewriteRule .* - [L]

    RewriteCond %{REQUEST_METHOD} =GET
    RewriteCond %{REQUEST_URI} ^(.*)/index.php$
    RewriteRule ^(.*)$ %1/ [R=301,L]
# ИЛИ
RewriteCond %{REQUEST_FILENAME} !‑f
RewriteRule ^(.*)([^/])$ /$1$2/ [L,R=301]

Убираем не нужное в адресе

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

   RewriteRule ^index\.html$ / [R=301,L]
   RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]

   RewriteRule ^index\.htm$ / [R=301,L]
   RewriteRule ^(.*)/index\.htm$ /$1/ [R=301,L]

   RewriteRule ^home\.html$ / [R=301,L]
   RewriteRule ^(.*)/home\.html$ /$1/ [R=301,L]

   RewriteRule ^home\.htm$ / [R=301,L]
   RewriteRule ^(.*)/home\.htm$ /$1/ [R=301,L]

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

   RewriteRule ^index\.php$ / [R=301,L]
   RewriteRule ^(.*)/index\.php$ /$1/ [R=301,L]

   RewriteRule ^home\.php$ / [R=301,L]
   RewriteRule ^(.*)/home\.php$ /$1/ [R=301,L]

Все статьи

Другие статьи

Смотреть все