Я бы на самом деле предложил не использовать для этого правила перезаписи.
Проблема с правилами перезаписи, которые превращают http
запросы в https
запросы, заключается в том, что они фактически являются перенаправлениями. Это означает, что для каждого запроса http
, который должен быть превращен в запрос https
, браузер сначала собирается выполнить полный запрос http
(включая содержимое, файлы cookie, кроме защищенных), получить код перенаправления от сервер, а затем снова отправьте запрос на https
перезаписанный URL.
Хотя это удобно, если вы полагаетесь на это, вместо того чтобы убедиться, что ссылки на вашем сайте, предназначенные для https
разделов, действительно используют https
, будет трудно определить, когда эти ссылки неправильное перенаправление на вариант http
.
Типичные последствия:
- предупреждения о смешанном контенте, если вы встраиваете что-либо, используя
http
, связанный позже, автоматически и прозрачно превращается в https
, что плохо; и
- возможная утечка данных.
Вместо этого я бы предложил, чтобы вы не использовали автоматическое переписывание / перенаправление, и чтобы разделы, которые должны быть доступны только через HTTPS, вообще не были доступны в обычном варианте HTTP (т. Е. http://yourhost/account
должен возвращать 404 с ): это по крайней мере заставит вас заметить, что вы неправильно связались, и поможет вам определить, где у вас могут возникнуть проблемы с безопасностью. В конечном счете, хотя они и имеют одно и то же имя хоста, сайт http
и сайт https
могут иметь два разных пространства URL-адресов: в этом контексте это неплохая вещь.
Я вижу только один случай, когда перезаписи с http
до https
действительно полезны, когда вы хотите убедиться, что точка входа пользователя на ваш сайт перенаправлена.
Перезапись с https
на http
не представляет этой проблемы, конечно.