Ладно .. Теперь есть масса вещей на этом сейчас, но никто не заканчивает
«Безопасный» вопрос. Для меня нелегко использовать что-то небезопасное.
Если вы не используете его в качестве приманки.
$ _ Распространение SERVER может быть изменено по желанию того, кто знает, как.
Также, как заявили Саззад Тушар Хан и thebigjc, вы также можете использовать httaccess для этого, и здесь есть много ответов, содержащих его.
Просто добавьте:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
до конца того, что у вас есть в вашем .httaccess и вот что.
Тем не менее, мы не настолько безопасны, как могли бы быть с этими двумя инструментами.
Остальное просто. Если отсутствуют атрибуты, например ...
if(empty($_SERVER["HTTPS"])){ // SOMETHING IS FISHY
}
if(strstr($_SERVER['HTTP_HOST'],"mywebsite.com") === FALSE){// Something is FISHY
}
Также скажите, что вы обновили файл httaccess и проверили:
if($_SERVER["HTTPS"] !== "on"){// Something is fishy
}
Есть намного больше переменных, которые вы можете проверить, т.е. ..
HOST_URI
(если есть статические атрибуты для проверки)
HTTP_USER_AGENT
(в том же сеансе разные значения)
Так что все, что я говорю, это не просто соглашайтесь на одно или другое, когда ответ лежит в комбинации.
Для получения дополнительной информации о переписывании httaccess см. Документацию-> http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
Некоторые стеки здесь -> Принудительное использование SSL / https с использованием .htaccess и mod_rewrite
и
Получение полного URL текущей страницы (PHP)
назвать пару.