Перенаправление HTTP запросов на HTTPS


Apache Web Server

Сайт настроен на работу по HTTPS, но все продолжают стучаться по открытому протоколу HTTP.

Значит нужно запретить использование HTTP и перенаправлять все HTTP запросы к страницам на их HTTPS адрес.

Добиться этого можно, например, организовать перенаправление с помощью mod_rewrite. Для этого сначала необходимо его активировать:

sudo a2enmod rewrite
sudo service apache2 restart

Затем изменить файл /etc/apache2/sites-enabled/000-default.conf, отвечающий за виртуальный хост по умолчанию для HTTP запросов.

В этот файл надо добавить внутрь блока

<VirtualHost *:80>
...
</VirtualHost>

строчки:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

При этом все настройки директорий можно удалить, поскольку по HTTP на сайты не попасть будет уже невозможно.

Перезапустить Apache

sudo service apache2 restart

и убедиться, что при заходе по HTTP происходит автоматическое перенаправление на HTTPS страницу.