我在网上看到过很多教程,说你需要检查$_SERVER['HTTPS'],如果服务器连接是HTTPS安全的。我的问题是,在我使用的一些服务器上,$_SERVER['HTTPS']是一个未定义的变量,导致错误。是否有另一个变量我可以检查,总是应该定义?
只是为了清楚一点,我目前正在使用这段代码来解决它是否是一个HTTPS连接:
if(isset($_SERVER['HTTPS'])) {
if ($_SERVER['HTTPS'] == "on") {
$secure_connection = true;
}
}
唯一可靠的方法是Igor M。
$pv_URIprotocol = isset($_SERVER["HTTPS"]) ? (($_SERVER["HTTPS"]==="on" || $_SERVER["HTTPS"]===1 || $_SERVER["SERVER_PORT"]===$pv_sslport) ? "https://" : "http://") : (($_SERVER["SERVER_PORT"]===$pv_sslport) ? "https://" : "http://");
考虑以下:
你在使用nginx的fastcgi,默认情况下(debian, ubuntu) fastgi_params包含指令:
快进HTTPS $ HTTPS;
如果你没有使用SSL,它会被转换为空值,而不是'off',而不是0
你死定了。
http://unpec.blogspot.cz/2013/01/nette-nginx-php-fpm-redirect.html