使用 PHP 检测 SSL
我在网上寻找检测服务器是否正在使用HTTPS连接的方法,但似乎没有一个站点拥有所有答案(以及一些不同的答案)。检测服务器是否将HTTPS连接与PHP结合使用的所有方法究竟是什么?我需要知道几种方法来检测SSL,因为我的一些脚本被重新分发,各种服务器以不同的方式处理事情。
我在网上寻找检测服务器是否正在使用HTTPS连接的方法,但似乎没有一个站点拥有所有答案(以及一些不同的答案)。检测服务器是否将HTTPS连接与PHP结合使用的所有方法究竟是什么?我需要知道几种方法来检测SSL,因为我的一些脚本被重新分发,各种服务器以不同的方式处理事情。
$_SERVER['HTTPS']
如果通过 HTTPS 协议查询脚本,则设置为非空值。
注意:请注意,将 ISAPI 与 IIS 配合使用时,如果请求不是通过 HTTPS 协议发出的,则该值将处于关闭状态。
因此,这将可以:
if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
// SSL connection
}
WordPress的核心is_ssl()功能还增加了对服务器端口的检查:
function is_ssl() {
if ( isset($_SERVER['HTTPS']) ) {
if ( 'on' == strtolower($_SERVER['HTTPS']) )
return true;
if ( '1' == $_SERVER['HTTPS'] )
return true;
} elseif ( isset($_SERVER['SERVER_PORT']) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
return true;
}
return false;
}