Все современные CMS умеют сами правильно определять доступность протокола HTTPS и переключать сайт на его работу. Поэтому, прежде чем вносить изменения в конфигурацию веб-сервера, посмотрите в настройках вашей CMS соответствующие разделы. Одновременное включение перенаправлений через настройки CMS и конфигурацию веб-сервера, может нарушить работу вашего сайта.
Веб-сервер IIS 7 (и выше)
Добавьте в файл Web.config в секцию <system.webServer> следующий код для безусловной переадресации на https версию сайта
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<conditions>
<add input="{HTTP_X_Forwarded_Proto}" negate="true" pattern="^https$" ignoreCase="true" />
</conditions>
<match url="(.*)" />
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
Если необходим редирект с кодом 302, то используйте следующий код:
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<conditions>
<add input="{HTTP_X_Forwarded_Proto}" negate="true" pattern="^https$" ignoreCase="true" />
</conditions>
<match url="(.*)" />
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
Веб-сервер Apache
Добавьте в начало файла .htaccess, который размещен в корне сайта, следующий код:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Бесплатные сертификаты Let's Encrypt
Для управления режимами работы сайта по HTTPS, используйте раздел личного кабинета:
Полный список функций ⟹ Параметры работы бесплатного SSL
Другие технологии
При работе сайта по HTTPS протоколу, веб-сервер формирует следующие HTTP заголовки и их значения:
X-Forwarded-Proto: https
X-Forwarded-Port: 443
HTTPS: on
X-Forwarded-Proto - рекомендуемый к использованию
Анализируя их в своем приложении, вы можете самостоятельно задавать логику работы сайта, определяя необходимость редиректов.
Посмотрите так же
Поддержка SSL / HTTPS, бесплатно для всех сайтов! - Статья об использовании бесплатных сертификатов Let's Encrypt на 1GB Хостинг.