Как принудительно настроить HTTPS с помощью htaccess

12 set 2022 3 min di lettura
Как принудительно настроить HTTPS с помощью htaccess
Indice dei contenuti

Введение

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

В отличие от HTTP, где запросы и ответы отправляются и возвращаются в виде обычного текста, HTTPS использует TLS/SSL для шифрования связи между клиентом и сервером.

Преимущества использования HTTPS вместо HTTP многочисленны:

  • Все данные шифруются в обоих направлениях. В результате конфиденциальная информация не может быть прочитана в случае перехвата.
  • Chrome, Firefox и все другие популярные браузеры пометят ваш сайт как безопасный.
  • HTTPS позволяет использовать протокол HTTP/2, что значительно повышает производительность сайта.
  • Google предпочитает веб-сайты HTTPS. Ваш сайт будет лучше ранжироваться, если будет предлагаться через HTTPS.

Перенаправление может быть установлено на уровне приложения или сервера. В этой статье объясняется, как перенаправить HTTP-трафик через HTTPS с помощью файла .htaccess.

Если у вас есть корневой доступ SSH к серверу Linux, на котором работает Apache, рекомендуется настроить перенаправление в файле конфигурации виртуального хоста домена. В противном случае вы можете настроить перенаправление в файле .htaccess. Сервер Apache считывает файл .htaccess при каждом запросе страницы, что замедляет работу веб-сервера.

Большинство панелей управления, таких как cPanel, позволяют принудительно перенаправлять HTTPS с помощью графического пользовательского интерфейса.

Перенаправить HTTP на HTTPS с помощью .htaccess

.htaccess — это файл конфигурации на основе каталога для веб-сервера Apache. Этот файл используется для определения того, как Apache обслуживает файлы из каталога, в котором он находится, а также для включения/отключения дополнительных функций.

Обычно файл .htaccess находится в корневом каталоге домена, но другие файлы .htaccess могут находиться в подкаталогах.

Вы можете отредактировать файл .htaccess (или создать новый) через SSH или FTP.

Чтобы перенаправить HTTP-запросы через HTTPS, откройте файл .htaccess и добавьте следующий код:

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

Вот что делает каждая строка кода:

  • RewriteEngine On — включает функции перезаписи и позволяет нам использовать правила перезаписи.
  • RewriteCond %{HTTPS} off — Проверяет, относится ли соединение к типу HTTP-запроса. При выполнении условия выполняется следующая строка. Мы просто хотим перенаправить HTTP-запросы. Если вы опустите это условие, вы получите цикл перенаправления.
  • RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] — Перенаправить все HTTP-запросы через HTTPS, с кодом состояния 301 (перемещено навсегда). Это правило будет переписано с http://example.com/about на http://example.com/about или с http://www.example.com/about на https://www.example.com/about.

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

Это все! После добавления этих строк сохраните файл и обновите браузер. Все HTTP-запросы должны быть перенаправлены на HTTPS.

При редактировании файла .htaccess нет необходимости перезапускать сервер, поскольку Apache считывает файл при каждом запросе.

Вот еще одно более общее правило перенаправления с HTTP на HTTPS:

RewriteEngine On
 RewriteCond %{HTTPS} off
 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  • HTTP_HOST — это имя хоста, запрашиваемое посетителем при доступе к сайту. Эта переменная представляет ваше доменное имя.
  • REQUEST_URI — это URI, используемый для доступа к странице.

Перенаправление HTTP на HTTPS и WWW на не-WWW

Вы можете получить доступ к любому веб-сайту по двум URL-адресам: с префиксом www (например, www.example.com) и без www (например, example.com). Большинство владельцев веб-сайтов выбирают одну версию в качестве своего предпочтительного домена и перенаправляют на нее, это лучшая практика.

Чтобы перенаправить с HTTP на HTTPS и с www на версию вашего сайта без www, добавьте следующие строки в файл .htaccess:

RewriteEngine On
 RewriteCond %{HTTPS} off [OR]
 RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
 RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

Здесь у нас есть два условия. Первый проверяет, не является ли соединение HTTPS, а второй проверяет, начинается ли запрос с www. Если одно из условий истинно (оператор [OR] ), выполняется правило перезаписи.

Перенаправить HTTP на HTTPS и не WWW на WWW

Если вы предпочитаете версию своего сайта с www, используйте следующее правило для перенаправления с HTTP на HTTPS и без www на www.

RewriteEngine On
 RewriteCond %{HTTPS} off [OR]
 RewriteCond %{HTTP_HOST} ^example\.com [NC]
 RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

Вывод

Мы показали вам, как отредактировать файл .htaccess, чтобы перенаправить весь HTTP-трафик через HTTPS.

Если у вас есть доступ к файлам конфигурации Apache, для повышения производительности вам следует принудительно использовать HTTPS, создав перенаправление 301 на виртуальном хосте домена.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.