Как я уже говорил в этом вопросе , я бы посоветовал вам избегать перенаправления всех HTTP-запросов к их HTTPS-эквиваленту вслепую, так как это может вызвать у вас ложное впечатление о безопасности. Вместо этого вам, вероятно, следует перенаправить «корень» вашего HTTP-сайта в корень вашего HTTPS-сайта и ссылаться оттуда только на HTTPS.
Проблема в том, что если какая-либо ссылка или форма на сайте HTTPS заставляет клиента отправлять запрос на сайт HTTP, его содержимое будет видно до перенаправления.
Например, если одна из ваших страниц, обслуживаемых по HTTPS, имеет форму с надписью <form action="http://example.com/doSomething">
и отправляет некоторые данные, которые не следует отправлять в незашифрованном виде, браузер сначала отправит полный запрос (включая сущность, если это POST) на сайт HTTP в первую очередь. Перенаправление будет немедленно отправлено в браузер, и, поскольку большое количество пользователей отключает или игнорирует предупреждения, оно, вероятно, будет проигнорировано.
Конечно, ошибка предоставления ссылок, которые должны быть на сайт HTTPS, но в конечном итоге на сайт HTTP, может вызвать проблемы, как только вы услышите что-то, прослушивающее порт HTTP на том же IP-адресе, что и ваш HTTPS. сайт. Тем не менее, я думаю, что сохранение двух сайтов в качестве «зеркала» только увеличивает вероятность ошибок, так как вы можете предположить, что он самокорректируется, перенаправляя пользователя на HTTPS, хотя это часто слишком поздно. (В этом вопросе были подобные обсуждения . )