Редирект с http на https

Редирект с http на https

Уже ни для кого не секрет, что Гугл и Яндекс начинают выдавать "бонусы" сайтам, у которых установлен сертификат безопасности SSL, и которые начали работать через протокол https. И чтобы корректно настроить редирект с http на https, нужно прописать в .htaccess пару строчек.

Да, строчек действительно две. Но есть определенные нюансы, зависящие от настроек того или иного сервера, заставляющие нас, порой долго, искать в интернете комбинацию этих заветных строк. Ниже я приведу исчерпывающие правила для постраничного редиректа всего сайта с протокола http на https.


Вариант 1

RewriteCond %{HTTPS} =off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Вариант 2

RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Вариант 3

RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Вариант 4

RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Вариант 5

RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
RewriteRule ^(.*)$ https://www.domain.com/$1 [L] #не забудьте заменить на ваш домен

Вариант 6

RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Вариант 7. На одну строчку больше =)

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Каждый из приведенных выше вариантов нужно прописывать сразу после включения mod_rewrite, а именно - после директивы RewriteEngine On.


  • Для JINO подошел вариант номер 3
  • Для webhost1 подошел только вариант 5, остальные не работают.
  • для beget подошел 1 вариант
  • для вебасист 7..
  • Как для "Варианта 7" прописать правило перенаправления с исключением для файла robots.txt ?
  • На руцентре сработал вариант №7
  • Для hostia подощел 1-й вариант, спасибо большое;)
  • 3 вариант подошел на beget simpla
  • Спасибо! Третий вариант заработал!
  • Спасибо! На Radisol'е - вариант 7. Сайт на WP.
  • Вот еще вариант, который подошел на хостинге hoster.ru RewriteCond %{HTTP:Front-End-Https} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
  • Не подошёл ни один вариант. (Hostland)
  • Мне на вордпресс подошёл первый
  • #RewriteCond %{HTTPS} off #RewriteCond %{REQUEST_FILENAME} !robots\.txt #RewriteCond %{HTTP:X-Forwarded-Proto} !https #RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  • Вы спасли мне жизнь, на hostland ваш вариант идеален
  • А у меня не сработал (( hostland + dle
  • А на поддомен както бесплатный сертификат распространить можно?
  • Ринат, здравствуйте! На поддомен бесплатный сертификат можно тоже установить. Отдельно от основного домена. Но это будет уже другой сертификат. Для каждого поддомена в этом случае придется устанавливать по одному бесплатному сертификату.
  • DAB
    Bitrix+Timeweb - 4 способ !
  • Ребят, не забываейте про строчку RewriteEngine on перед этим...
  • К примеру: RewriteEngine on RewriteCond %{HTTPS} =off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
  • Вопрос. А как сделать переадрессацию, чтобы запросы https перенаправлялись на http. Был сертификат, и срок его истек. В результате, при переходе по ссылке https на сайте высвечивается ошибка безопасности
  • Здравствуйте, Евгений! Один раз мне нужно было делать подобное, у меня сработал вот такой вариант: RewriteCond %{SERVER_PORT} =443 RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [L]