我试图检查一个服务器是否有https enabled
,但它从不进入if,而是在else语句中。
if ($_SERVER['HTTPS'] == "yes") {
echo "HTTPS";
} else {
echo "HTTP";
}
我做错了什么?
答案 0 :(得分:6)
它应该是"on"
,而不是"yes"
if ($_SERVER['HTTPS'] == "on") {
echo "HTTPS";
} else {
echo "HTTP";
}
答案 1 :(得分:3)
我会回应服务器[https]变量。根据服务器的不同,可能会在' on'不是'是'。
答案 2 :(得分: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>
这种方式无论是&#34; on&#34;或&#34;是&#34;。 但是,我没有为https案例测试此环境的环境。 http适用于我的情况。