Редирект с http на https через htaccess

настроить редирект с http на https

Новый 2017й год — это будет массовый год перехода больших и маленьких сайтов, блогов и порталов с обычного старого и всем известного протокола HTTP на его более новую и безопасную версию HTTS. Буква S в аббревиатуре обозначает «Secure», то есть безопасный. Это достигается за счёт использования протоколом шифрования, которое используется в протоколах SSL или TLS, поверх которых будут передаваться данные. Такую политику продвигает компания Google. В след за ней, скорее всего, этим займутся и все остальные Интернет-медиагиганты.
Всвязи с этими событиями у веб-мастеров начинают возникать различные вопросы, связанные с переходом от одного протокола к другому. В этой статье я расскажу про то, как настроить редирект с http на https через htaccess на веб-сервере Apache. 

Что это такое и зачем оно нужно?

В переводе с английского языка слово «redirect» обозначает перенаправление. То есть, смысл этой процедуры заключается в том, чтобы трафик, который идёт на обычную версию сайта перенаправить на новую, защищённую версию. Тут дело в том, что для поисковиков сайт http://example.ru и https://example.ru — это два разных ресурса. Поэтому, после перехода на защищённый протокол, в Интернете появляется полная копия исходного сайта. И вот чтобы избежать проблем с поиском и работой сайта, крайне необходимо настроить перенаправление, то есть редирект сайта с http на https.

Настройка перенаправления в htaccess

У самого популярного веб-сервера Apache для большего удобства работы и настройки (проще говоря, чтобы пользователь не лазил лишний раз в глобальный конфиг httpd.conf) используется специальный файл дополнительной конфигурации .htaccess, который лежит в каталоге сайта. Вот как раз с его помощью можно настроить перенаправление http на https.


Итак, с помощью любого подручного текстового редактора — vim, nano, mcedit и т.п. — открываем файл и прописываем следующее:

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Если вдруг не заработает — пробуйте второй вариант настройки редиректа через htaccess:

RewriteEngine On

RewriteCond %{SERVER_PORT} !^443$

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Во втором случае используется правило Redirect 301, когда при попытке доступа к той или иной странице на старой версии http сервер будет отвечать, что она переехала на новый адрес с https.

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

Оставьте комментарий