В последнее время стало стало модно устанавливать SSL сертификат на сайт. В первую очередь это связано с тем, что некоторые браузеры выводят предупреждения в строке URL о недостоверном или незащищенном соединении. Это заставляет многих веб-мастеров устанавливать SSL сертификаты на сайты.
Однако, после покупки и установки SSL сертификата нужно «заставить» пользователя переходить по ссылке с https. Не все панели управления и CMS имеют настройку, позволяющую указать URL по умолчанию на https. Проблема не носит массовый характер, но мне встречались сайты в сети, на которых в шапке веб-мастер устанавливал ссылку с рекомендацией перейти на https 😀
Если дело происходит на выделенном или виртуальном сервере, то проблема не выглядит сложной — можно легко исправить конфиг веб-сервера и вручную прописать нужный URL
Однако, зачастую доступа к редактированию конфига веб-сервера у пользователя не имеется, особенно если речь идет о хостинге. И, зачастую, необходимых для внесения изменений знаний не хватает. В этом случае можно применить простой и доступный метод — внести изменения в файл .htaccess в корне сайта. Конечно же, метод работает только там, где используется веб-сервер apache. Впрочем, как правило, он используется на подавляющем большинстве хостингов.
Требуется добавить следующие строки в самое начало файла .htaccess:
1 2 3 4 5 6 | # SSL <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] </IfModule> |
Способ второй, не всегда возможный:
Редирект http в https для web-сервера NGINX:
Если имеется возможность внести изменения в конфиг nginx, то конечно же, лучше настроить на нем редирект. Это избавит apache от постоянных rewrite.
Требуется добавить только одну строчку с 301 редиректом return 301 https://$server_name$request_uri; :
1 2 3 4 5 | server { listen 62.210.162.204:80; server_name example.com www.example.com example2.com www.example2.com; return 301 https://$server_name$request_uri; |