ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как заставить использовать HTTPS с помощью .htaccess

Как заставить HTTPS использовать .htaccess

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

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

Есть несколько преимуществ использования HTTPS над HTTP, таких как:

Перенаправление может быть установлено на уровне приложения или сервера. В этой статье объясняется, как перенаправить 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]

 

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

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

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

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

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

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

 

 

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

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

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

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.ru [NC]
RewriteRule ^(.*)$ https://example.ru/$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\.ru [NC]
RewriteRule ^(.*)$ https://www.example.ru/$1 [R=301,L]

 

Вывод

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

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

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Exit mobile version