Как перенаправить HTTP на HTTPS на Apache

Прежде чем вы сможете настроить перенаправление Apache HTTP на HTTPS для своего домена, убедитесь, что у вас установлен сертификат SSL, и в Apache включен mod_rewrite.

Перенаправление HTTP на HTTPS в Apache с использованием
файла .htaccess

Сначала убедитесь, что модуль mod_rewrite включен, в противном случае ОБЯЗАТЕЛЬНО включите его.

$ sudo a2enmod rewrite [Ubuntu/Debian]

Для пользователей CentOS/RHEL (!) Убедитесь, что у вас есть следующая строка в httpd.conf (поддержка mod_rewrite — включена по умолчанию).

LoadModule rewrite_module modules/mod_rewrite.so

 

Теперь вам просто нужно отредактировать или создать файл .htaccess в корневом каталоге вашего домена и добавить эти строки для перенаправления http на https.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

 

Теперь, когда посетитель набирает http://www.yourdomain.com, сервер автоматически перенаправляет HTTPна HTTPS https://www.yourdomain.com.

 

Как перенаправить HTTP на HTTPS на виртуальный хост Apache

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

Первый содержит конфигурацию для незащищенного порта 80.

Второй — для безопасного порта 443. Для перенаправления HTTP на HTTPS для всех страниц вашего веб-сайта сначала откройте соответствующий файл виртуального хоста. Затем измените его, добавив конфигурацию, приведенную ниже.

NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.yourdomain.com
Redirect / https://www.yourdomain.com/
</VirtualHost>

<VirtualHost _default_:443>
ServerName www.yourdomain.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
# etc...
</VirtualHost>

 

Сохраните и закройте файл, а затем перезапустите HTTP-сервер следующим образом.

$ sudo systemctl restart apache2     [Ubuntu/Debian]
$ sudo systemctl restart httpd     [RHEL/CentOS]

 

<VirtualHost> является наиболее рекомендуемым решением, потому что он прост и безопасен.