Перейти к основному контенту

Редирект с HTTP на HTTPS для Linux

Редирект на Linux-хостинге

Чтобы ваш сайт работал по безопасному протоколу HTTPS, после установки SSL-сертификата нужно настроить перенаправление (редирект) с HTTP на HTTPS в панели управления.

Для этого ваш сайт должен быть размещен на хостинге REG.RU. Попробуйте тестовый период бесплатного хостинга для сайтов html и php.

Обращаем внимание, что редирект стоит настраивать только в том случае, если в панели управления уже установлен SSL-сертификат: Как установить SSL-сертификат на хостинг?

Как настроить 301 редирект с HTTP на HTTPS

  • Если у вас на хостинге панель управления ISPmanager, переадресацию можно настроить в несколько кликов средствами панели управления.

  • Если у вас на хостинге панель управления — cPanel или Plesk, редирект настраивается только через конфигурационный файл .htaccess

Настройка редиректа в ISPmanager

Обратите внимание! Если внешний вид вашей панели управления отличается от представленного в инструкции, кликните в левом нижнем углу «Старый интерфейс».

Откройте панель управления ISPmanager и перейдите в раздел «WWW-домены». Выберите домен, который должен открываться по HTTPS и нажмите Изменить. Поставьте галочку напротив пункта Перенаправлять HTTP-запросы в HTTPS и нажмите ОК, чтобы сохранить изменения.

Готово, теперь ваш сайт будет работать по протоколу HTTPS.

Настройка редиректа в cPanel и Plesk

Как настроить 301 редирект в htaccess:

  1. 1.
  2. 2.

    Откройте файл .htaccess. Он расположен в корневой папке сайта. Если файл .htaccess отсутствует, то причина может быть в том, что в cPanel не отображаются скрытые файлы. Чтобы отобразить скрытые файлы, воспользуйтесь инструкцией.

    Как открыть файл .htaccess

    cPanel
    Plesk

    Обратите внимание: в cPanel файл .htaccess скрыт по умолчанию. Чтобы приступить к редактированию файла, в настройках измените видимость скрытых файлов.

    В разделе «Домены» выберите пункт Дополнительные домены. Нажмите по строке, где указана корневая папка домена. Затем нажмите правой кнопкой по файлу .htaccess и выберите в появившемся списке пункт Edit:

    Обратите внимание! Если внешний вид вашей панели управления отличается от представленного в инструкции, перейдите в раздел «Сайты и домены» и в правом верхнем углу измените вид на «Активный».

    Под нужным доменом нажмите по строке, где указана корневая папка домена. Откроется корневая папка вашего сайта. Найдите в списке файл .htaccess и кликните по нему левой кнопкой мыши:

     

    htaccess

  3. 3.

    Добавьте в конце файла .htaccess одно из правил, которое подходит для вашего случая:

    Редирект всех страниц с HTTP на HTTPS

    Редирект всех страниц с http:// на https://, в том числе и с http://www на https://

    Используйте вариант 1:

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

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

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

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

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

    или:

    RewriteEngine On 
    
    RewriteCond %{ENV:HTTPS} !on 
    
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    Редирект на HTTPS только выбранной страницы

    Для примера возьмём страницу login.php. 301 редирект для неё настраивается следующим образом:

    Вариант 1:

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

    Вариант 2:

    RewriteEngine On
    
    RewriteCond %{SERVER_PORT} !^443$
    
    RewriteCond %{REQUEST_URI} =/login.php
    
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
    Редирект на сайт HTTPS всех страниц, кроме одной

    В примере ниже редирект настраивается для страницы test.php.

    RewriteEngine On
    
    RewriteCond %{HTTPS} =off
    
    RewriteCond %{REQUEST_URI} !^/test.php
    
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
  4. 4.
    Сохраните изменения.

Готово, теперь ваш сайт будет работать по протоколу HTTPS.

Обратите внимание! Если ни один из предложенных вариантов кода не подошёл, обратитесь к разработчикам сайта или на тематические форумы. В некоторых случаях корректная настройка редиректа возможна только средствами CMS.

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 5 из 8