Перенаправление с HTTP на HTTPS .htaccess для Linux

Блог X-MSN  > Web Серверы >  Перенаправление с HTTP на HTTPS .htaccess для Linux
0 комментариев

Чтобы ваш сайт всегда открывался по безопасному https:// протоколу,
рекомендуется настроить переадресацию c http:// на https://.
В этом случае даже если посетитель вашего сайта наберёт в строке браузера путь http://вашсайт,
браузер его автоматически перенаправит на безопасный протокол https://вашсайт.

Для настройки переадресации необходимо добавить в файл .htaccess правила, которые вы найдёте ниже.
Файл .htaccess должен быть расположен в каталоге сайта.
Если файла не существует, просто создайте его.
Перейдите в каталог сайта и добавьте в файл .htaccess следующие строки:

Редирект всех страниц с http:// на https://

Вариант 1.

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

Если первый вариант не поможет, воспользуйтесь вторым вариантом:

Вариант 2.

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

Вариант 3.

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

Если все варианты не помогли и возникает циклическая переадресация:

Испробуйте Вариант 4.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Редирект на https только определённой страницы
В примерах ниже редирект настраивается для страницы admin.php.

Вариант 1.

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

Вариант 2.

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

Редирект на https всех страниц, кроме одной
В примере ниже редирект настраивается для страницы main.php

RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^/main.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Плюшки
Браузер проводит проверку наличия SSL-сертификата раньше, чем срабатывает редирект. Таким образом, если у вас нет активного SSL-сертификата, выпущенного удостоверяющим центром, посетители сайта будут видеть предупреждение браузера о незащищённом контенте раньше, чем сработает редирект.

RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

вместо site.ru введите имя вашего домена;

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.