Очень похоже на "Обнаружение https-запросов в php< /а>":
Хотите иметь https://example.com/pog.php, перейдите на http://example.com/pog.php или даже наоборот.
Проблемы:
- Не могу ничего прочитать из $_SERVER["HTTPS"], так как его там нет
- Сервер отправляет оба запроса через порт 80, поэтому не может проверить 443 в версии HTTPS.
apache_request_headers()
иapache_response_headers()
возвращают одно и то же- Не могу ничего сказать балансировщику нагрузки или отправить что-то лишнее
- Данные обратной связи сервера, выдаваемые страницей при обоих вызовах URL, точно такие же, за исключением идентификатора сеанса. облом.
Есть ли на странице способы определить, вызывается ли она через SSL или без SSL?
Изменить: $_SERVER["HTTPS"]
там нет, включен он или нет, независимо от того, просматриваете ли вы сайт через SSL или без него. По какой-то причине хостинг решил обслуживать все HTTPS-запросы в зашифрованном виде, но не на 80-м порту. И, таким образом, $_SERVER["HTTPS"]
никогда не включен, не там, просто нет полезной обратной связи по этому серверу. Так что этот параметр всегда должен быть пустым.
(И да, это означает, что он помечен, скажем, в FF или Chrome для частично недействительного SSL-сертификата. Но эта часть не имеет значения.)
Кроме того, максимум, что можно получить от определения URL-адреса, — это косая черта. PHP не может видеть, есть ли в запросе https
или http
впереди.