Поиск по сайту:

В конце концов, не скажешь ничего уже, что не было б другими раньше сказано (Теренций).

Как заставить использовать HTTPS с помощью .htaccess3 мин для чтения

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
6 июля 2020
Как заставить HTTPS использовать .htaccess
Если вы установили 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.ru/about в https://example.ru/about или http://www.example.ru/about на https://www.example.ru/about
Читать  Перенаправление HTTP на HTTPS в Apache

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

Все! После добавления этих строк сохраните файл и обновите браузер. Все 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.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 на виртуальном хосте домена.

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

Читать  Как настроить виртуальные хосты Apache в Ubuntu 20.04

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читайте также

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close