@mydarck

Как удалить двойной/тройной редирект?

Здравствуйте! От SEO специалиста пришла задача: Необходимо двойные и тройные 301-редиректы со страниц без «/» на конце заменить на одинарные 301-редиректы на страницы с «/» на конце.
Я так понимаю двойной/тройной этот редирект потому что сначала он редиректит протокол с http на https, затем уже полученный url редиректит c без слеша на конце на со слешом, т.е. в два этапа. На это ругается мой сеошник. Можно как то этот момент исправить? Вот то, что у меня сейчас происходит в htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /


RewriteCond %{HTTP:PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_URI} !(.*)sitemap.xml$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

# Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^domain\.ru [NC]
RewriteRule (.*) https://domain.ru/$1 [R=301,L]

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
  • Вопрос задан
  • 488 просмотров
Решения вопроса 1
@dodo512
Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteRule (.*)\.html$ https://domain.ru/$1/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !sitemap\.xml$
RewriteRule ^(.*[^/])$ https://domain.ru/$1/ [L,R=301]

RewriteCond %{HTTP:PORT} !^443$       [OR]
RewriteCond %{HTTP_HOST} !^domain\.ru [NC]
RewriteRule (.*) https://domain.ru/$1 [R=301,L]

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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