Если вы находитесь в ситуации, когда вы не можете получить доступ к конфигурации apache напрямую для своего сайта, поскольку многие размещенные платформы по-прежнему ограничены таким образом, то я бы фактически рекомендовал двухэтапный подход.Причина, по которой сами Apache документируют, что вы должны использовать их параметры конфигурации в первую очередь над mod_rewrite для HTTP-HTTPS.
Во-первых, как уже упоминалось выше, вы должны настроить свои правила .htaccess mod_rewrite:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Затем в ваших файлах PHP (вам нужно делать это там, где это будет уместно для вашей ситуации, некоторые сайты будут направлять все запросы через один файл PHP, другие обслуживают различные страницы в зависимости отих потребности и выполняемый запрос):
<?php if ($_SERVER['HTTPS'] != 'on') { exit(1); } ?>
Приведенное выше необходимо выполнить ДО любого кода, который потенциально может предоставить защищенные данные в незащищенной среде.Таким образом, ваш сайт использует автоматическое перенаправление через HTACCESS и mod_rewrite, в то время как ваши сценарии гарантируют, что выходные данные не будут предоставлены, если к ним нет доступа через HTTPS.
Я полагаю, что большинство людей так не думают, и поэтому Apache рекомендуетВы не используете этот метод, где это возможно.Тем не менее, требуется только дополнительная проверка в конце разработки, чтобы гарантировать безопасность данных вашего пользователя.Надеемся, что это поможет кому-то еще, кому, возможно, придется изучить использование нерекомендованных методов из-за ограничений нашего хостинга.