Настройка редиректа с HTTP на HTTPS для сайта

Maria Kholodnitska 02.12.2020 03.04.2023 2199 на прочтение 3 минуты


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

Рассмотрим как это сделать 2 способами:

  • через панель управления хостингом ISPmanager и cPanel, есть самый простым способом;
  •  используя  файл .htaccess. Также хороший вариант, но не всегда срабатывает определенная комбинация строк, нужно подбирать.

Важно: настраивать перенаправление нужно после наличия валидного SSL сертификата.

Панель ISPmanager

1) Заходим в панель.

2) Кликаем на «www- домены».На открытой странице будет представлен список всех добавленных доменов в панель, выбираем нужный кликнув на него и верхнем меню нажимаем на иконку «Изменить».

3) Напротив строки “Перенаправлять  HTTP-запросы в HTTPs” ставим галочку. И для сохранения изменений в конце жмем на “Ok”.

Панель cPanel

1)Заходим в панель.

2)С блока “Домены” выбираем  “Домены”.

3)Напротив домена в колонке “Force HTTPS Redirect” включаем эту опцию.

Панель FASTPANEL

1. Заходит в учетную запись панели.

2. С главного меню выбираем домен, для которого необходимо настроить перенаправление. 

3. Далее выбирем блок «Настройки».

4. Чтобы сделать редирект в открытой кладке жмем на опцию «HTTPS», заполняем форму и сохраняем.

Через файл  .htaccess

В большинстве случаев  этот файл находиться в корневой папке сайта, но он может быть скрытым, поэтому для начала откройте видимость скрытых файлов. (.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

И сохраните изменения.

Ошибки с Mixed Content 

Если после выполнения перенаправления сайт не открывается по безопасному протоколу, причина может быть в возникновении Mixed Content — подтягивание статических ссылок,  различных путей и т.д. с http. Все эти ошибки нужно отредактировать и заменить на https.

Простой способ проверить наличие ошибок, на странице  кликаем правой кнопкой мыши и выбираем “Просмотреть код”.

И с блока “Console” просматриваем ошибки. 

Если при настройке у вас возникли трудности, смело обращайтесь в тех.поддержку компании ГиперХост, мы бесплатно  24/7 помогаем нашим клиентам хостинга решить различные вопросы для продуктивной бесперебойной работы их сайтов.

Купить Хостинг

Редирект для сайта на WordPress: через плагин или htaccess

Редиректы для сайта на CMS WordPress можно выполнить добавив записи в файл htaccess, ознакомится с чем можно в статье ниже.

  • Через плагин;
  • Через htaccess;
  • Как проповерить.

301 редирект для сайта на WordPress

Для этого переходим в административную панель сайта во вкладку «Плагины»-«Добавить новый», где в поиске вводим «redirection».

Устанавливаем появившийся плагин (автор John Gadley) и активируем его.

Переходим в настройки.

Соглашаемся с базовыми настройками.

Система проверит сайт и завершаем настройку.

Дожидаемся установки и переходим в интерфейс плагина.

Чтобы сделать редирект с одной страницы на другую потребуется перейти в «Редирект».

Далее «Добавляем новый».

Далее заполняем:

  • Исходный URL;
  • Целевой URL.

Все готово в списке появится.

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

Чтобы включить настройку потребуется перейти в вкладку «Сайт» и включить опцию:

Force a redirect from HTTP to HTTPS

С WWW на без WWW и наоборот

В этой же вкладке сайт необходимо поставить галочку у нужного пункта.

Важно! По умолчанию настройка не делает никаких изменений в этом плане.

Как сделать редирект через файл htaccess

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

Redirect 301 site.ru/page1/ site.ru/page2/

Где:

  • page1- страница которая будет переадресовывать;
  • page2 – открывающийся документ.

Важно! Можно записывать адреса в относительном виде, например, /page1/ и /page2/.

Также допускается использование конструкции:

Redirect permanent site.ru/page1/ site.ru/page2/

Для того, чтобы выполнить правило, потребуется посетить административную панель хостинга (или же зайти через FTP), где в корневой папке сайта лежит файл htaccess.

Вводим нужное нам правило.

Как сделать перенаправление на другой домен?

В этом случае необходимо автоматически перекидывать всех пользователей с домена domain1. poddomen.domain.ru$ [NC]
RewriteRule (.*) http://site.ru/$1?region=poddomen [L,R=301,QSA]

Как проверить работу 301 редиректа?

Для этого можно использовать инструмент проверки ответа сервера Яндекса:

https://webmaster.yandex.ru/tools/server-response/

Здесь вводим адрес первой страницы и видим следующее:

Как видим правило применилось и работает корректно.

с http на https через .htaccess

спросил

10 лет, 11 месяцев назад

Изменено 1 год, 1 месяц назад

Просмотрено 198 тысяч раз

Я просмотрел существующие вопросы, но не нашел ничего подходящего для меня.

В настоящее время я использую сайт с сертификатом Secure SSL. Доступ к нему можно получить по адресу https://www.example. co.uk. Проблема в том, что сайт также доступен по адресу http://www.example.co.uk — я не хочу, чтобы это было возможно. Мне нужно, чтобы он перенаправлял с http на https. 9(.*)$ https://example.co.uk/$1 [L,R=301]

Это прекрасно работает, когда пользователь вводит example.co.uk в свою адресную строку, но мне также нужно добавить какое-то условное выражение, чтобы, если пользователь вводит «www.example.co.uk» или «http: //www.example.co.uk».

Я пытался использовать что-то вроде [ИЛИ], но это приводило к ошибкам сервера.

Приветствуются любые помощь и предложения.

Удачи.

  • http
  • .htaccess
  • перенаправление 9(.*)$ https://www.example.com/$1 [П, Л]

    измените example.com на домен вашего веб-сайта

    Учебное пособие по перенаправлению URL-адресов можно найти здесь — Перенаправление без www на www и с HTTP на HTTPS с использованием файла .htaccess

    0

    Попробуйте это, я использовал его, и он отлично работает

     Options +FollowSymLinks
    RewriteEngine включен
    RewriteCond %{HTTPS} выкл. (.*)$ https://www.example.com/$1 [L,R=301]
    
     9https://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]
     

    Есть лучшие и более безопасные способы убедиться, что весь ваш трафик проходит через https . Например, настроить два виртуальных хоста и перенаправить весь трафик с вашего http на ваш https хост. Подробнее об этом читайте в этом ответе здесь, на

    security.stackexchange.com .

    При настройке виртуального хоста для перенаправления вы можете отправлять статус 301 (постоянное перенаправление), чтобы браузер понимал, что все последующие запросы должны быть отправлены на https-сервер, на который он был перенаправлен. Следовательно, после первого ответа перенаправления дальнейшие http-запросы выполняться не будут. 9(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

    Приведенный ниже код при добавлении в файл .htaccess автоматически перенаправляет любой трафик, предназначенный для http:, на https:

     
    index.php [L] 9(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    Я хочу, чтобы мой сайт был перенаправлен на https://www. с HTTPS и принудительное использование www. субдомен, но когда я обращаюсь к http://www. (без HTTPS), меня не перенаправляет на https://www с HTTPS.

    • apache
    • .htaccess
    • mod-rewrite
    • перенаправление
    • https

    4

    Чтобы сначала принудительно использовать HTTPS, вы должны проверить правильную переменную среды

    %{HTTPS} off , но ваше правило выше затем добавляет www. Поскольку у вас есть второе правило для применения www. , не используйте его в первом правиле.

     RewriteEngine включен
    RewriteCond %{HTTPS} выкл.
    # Сначала перепишите на HTTPS:
    # Не ставьте www. здесь. Если он уже есть, он будет включен, если нет
    # последующее правило поймает его. www\. [НЗ]
    RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
     

    О проксировании

    При некоторых формах проксирования, когда клиент подключается через HTTPS к прокси, балансировщику нагрузки, приложению Passenger и т. д., переменная

    %{HTTPS} никогда не может быть на и вызывать переписать петлю. Это связано с тем, что ваше приложение на самом деле получает простой HTTP-трафик, даже если клиент и прокси/балансировщик нагрузки используют HTTPS. В этих случаях проверьте заголовок X-Forwarded-Proto вместо %{HTTPS} 9.0092 переменная. Этот ответ показывает соответствующий процесс

    0

    Ответ Михала сработал для меня, хотя и с одной небольшой модификацией:

    Проблема:

    , когда у вас есть сертификат безопасности одного сайта

    , браузер, который пытается получить доступ к вашей странице без https://www. (или в зависимости от того, на какой домен распространяется ваш сертификат) будет отображаться уродливый красный экран с предупреждением до того, как он даже получит перенаправление на безопасную и правильную страницу https. 9www\. [НЗ] RewriteRule .* https://www.example.com%{REQUEST_URI} [L,R=301]

    Браузер переходит по адресу:

     http://example.com
     

    Затем перенаправляет на:

     https://example.com
     

    Затем перенаправляет на:

     https://www.example.com
     

    Слишком много запрос на сервер.

    Большинство ответов даже приняты, у одного есть эта проблема.


    Этот код имеет условие [ИЛИ] для предотвращения двойных изменений в URL! 9https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ### КОНЕЦ WWW и HTTPS

    5

    Существует множество решений. Вот ссылка на вики apache, которая напрямую занимается этой проблемой.