Проверьте, не работает ли сервер https

1

Я пытаюсь проверить, https enabled на сервере, но он никогда не переходит в if, а в оператор else.

if ($_SERVER['HTTPS'] == "yes") {
    echo "HTTPS";
} else {
     echo "HTTP";
}

Что я делаю не так?

Теги:
https

3 ответа

6
Лучший ответ

Он должен читать "on", а не "yes"

if ($_SERVER['HTTPS'] == "on") {
    echo "HTTPS";
} else {
     echo "HTTP";
}
3

Я бы откликнул сервер [https]. В зависимости от сервера он может быть "включен" не "да".

1

Согласно http://php.net/manual/en/reserved.variables.server.php

"HTTPS" Установите для непустого значения, если скрипт был запрошен через протокол HTTPS.

Но это также добавляет:

Note: Note that when using ISAPI with IIS, the value will be off if the request was not made through the HTTPS protocol. 

Итак, я бы использовал другую логику:

<code>
if ( empty( $_SERVER['HTTPS'] ) ) {
    echo 'http:';
}
else if ( $_SERVER['HTTPS'] == 'off' ) {
    echo 'http:';
}
else {
    echo 'https:';
}
</code>

Таким образом, это не имеет значения, если он включен или "да". Тем не менее, у меня нет среды для проверки этого на случай https. http работает в моем случае.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню