PHP: HTTP или HTTPS?

Как узнать, была ли доступна страница php через http или https?

Ответ 1

Если запрос был отправлен с помощью HTTPS, у вас будет дополнительный параметр в $_ SERVER superglobal - $_SERVER ['HTTPS']. Вы можете проверить, установлено ли оно или нет.

if( isset($_SERVER['HTTPS'] ) ) {

Ответ 2

Если ваш запрос отправлен HTTPS, у вас будет дополнительная серверная переменная с именем "HTTPS"

if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') { //HTTPS } 

Ответ 3

$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'?'https':'http';

$protocol = isset($_SERVER["HTTPS"]) ? 'https' : 'http';

Они должны работать

Ответ 4

Это может усложниться в зависимости от того, где PHP находится в вашей среде, так как ваш вопрос довольно широк. Это может зависеть от того, есть ли балансировка нагрузки и как она настроена. Вот несколько связанных вопросов:

Ответ 5

$_SERVER['HTTPS']

Это будет содержать "непустое" значение, если запрос был отправлен через HTTPS

PHP Server Variables

Ответ 6

Вы должны сделать это, проверив значение $_SERVER['HTTPS'] (его следует устанавливать только при использовании https).

См. http://php.net/manual/en/reserved.variables.server.php.