База знаний
Редирект / переадресация с HTTP на HTTPS
Опубликовано Денис Завьялов on 05 July 2018 12:55

Рассмотрим варианты переадресации http версии сайта на https.

Редирект можно осуществить с помощью файла .htaccess который находится в корне Вашего сайта. 
Если по какой-то причине такого файла там нет, то просто создайте его самостоятельно.

Ниже приводятся несколько вариантов записей, которые нужно добавить в .htaccess:

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 %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

 

Тажке можно выполнить переадресацию одного, конкретного файла. Например forhttps.php:

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

Или наоборот, нужно чтоб весь сайт, кроме одного файла(forhttp.php), перенаправляло на https:

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

Далее расмотрим варианты переадресации с помощью веб-сервера nginx.

Для этого зайдём в Plesk Panel.
Сделать это можно с главной вкладки личного кабинета нажав "Войти по имени сервера" или "Войти по IP-адресу". Либо во вкладке "Parallels Plesk Panel"

enterplesk

В Plesk Panel находим необходимый домен и возле него нажимаем "Настройки Apache и nginx"

nginx

В поле "Дополнительные директивы nginx" указываем следующую запись:

server_name test.com;
server_name www.test.com;
if ( $scheme = "http" ) {
   rewrite ^/(.*)$ https://$host/$1 permanent;
}

Где test.com и www.test.com - варианты Вашего домена которые необходимо перенаправлять на защищенную HTTPS версию.

 redirectnginx

Также могут быть полезны и другие виды переадресации - 301 редирект через .htaccess

(5 голос(а))
Эта статья помогла
Эта статья не помогла

Коментарии (0)