Я работаю над веб-сайтом корзины покупок, и я хотел бы перенаправить пользователя на страницу HTTPS, когда он вводит свои платежные данные, и поддерживать соединение HTTPS для следующих страниц, пока он не выйдет из системы.
Что мне нужно установить на сервере (я использую Apache), чтобы сделать это, и как сделать это перенаправление с PHP?
if( $_SERVER['HTTPS'] == "off")
этот код, чтобы заставить его работать. Я думаю, это потому, что я использую IIS, а не Apache, как OP.Это хороший способ сделать это:
источник
!(isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on'
всегда будет ложным, так как если последняя часть истинна, первая будет ложной.Перенаправление с HTTP на HTTPS с помощью PHP в IIS
У меня возникли проблемы с перенаправлением на HTTPS для работы на сервере Windows, на котором работает версия 6 MS Internet Information Services (IIS) . Я больше привык работать с Apache на хосте Linux, поэтому я обратился за помощью в Интернет, и это был самый высокий вопрос о переполнении стека, когда я искал «php redirect http на https» . Однако выбранный ответ у меня не сработал.
После некоторых проб и ошибок я обнаружил, что в IIS
$_SERVER['HTTPS']
установлено значениеoff
для подключений без TLS. Я думал, что следующий код должен помочь любым другим пользователям IIS, которые задаются этим вопросом через поисковую систему.Изменить : из другого ответа на переполнение стека более простым решением является проверка
if($_SERVER["HTTPS"] != "on")
.источник
apache
, я опубликовал этот ответ для других пользователей IIS (аналогично ситуации, в которой я был), которые могут попасть на эту страницу через поисковую систему. Я согласен с мнением, что ответы предназначены на благо всего сообщества, а не только ОП.Вы всегда можете использовать
для перенаправления на URL-адрес сохранения.
Но я бы рекомендовал сделать это с помощью .htaccess и правил перезаписи Apache.
источник
На моем сервере beanstalk AWS я не вижу переменную $ _SERVER ['HTTPS']. Я вижу $ _SERVER ['HTTP_X_FORWARDED_PROTO'], который может быть как 'http', так и 'https', поэтому, если вы размещаете на AWS, используйте это:
источник