2020最新PHP判断请求是否为HTTPS
客户在http时可以唤起微信扫一扫接口,可https却不行,用开发者工具查看是
签名错误,反复找原因原来是参数网址请求协议弄错了,https传的是http结果导致失败了,附上最新的判断是否为https的方法function isHTTPS(){
if(!isset($_SERVER)) return false;
if(isset($_SERVER['HTTPS']) &&
($_SERVER['HTTPS'] === 1 || $_SERVER['HTTPS'] === 'on')) {
return true;
}elseif(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){ //Nginx
return true;
}elseif(isset($_SERVER['REQUEST_SCHEME']) &&
$_SERVER['REQUEST_SCHEME'] == 'https'){
return true;
}else if(isset($_SERVER['HTTP_X_CLIENT_SCHEME']) &&
$_SERVER['HTTP_X_CLIENT_SCHEME'] == 'https'){
return true;
}elseif ($_SERVER['SERVER_PORT'] == 443) {
return true;
}
return false;
}
多参数判断,更准确。