* 判断是否SSL协议
* @return boolean
*/
public static function isSsl()
{
if (isset($_SERVER['HTTPS']) && ('1' == $_SERVER['HTTPS'] || 'on' == strtolower($_SERVER['HTTPS']))) {
return true;
} elseif (isset($_SERVER['SERVER_PORT']) && ('443' == $_SERVER['SERVER_PORT'])) {
return true;
}
return false;
}
因为我的服务器是 前 nginx 后 apache ,所以这样判断的不是 https
于是我在nginx加了
proxy_set_header X-Forwarded-Proto $scheme;
然后在函数加了
elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && ('https' == $_SERVER['HTTP_X_FORWARDED_PROTO'])){
return true;
}
就可以了。不知道合理不合理
最佳答案