感谢你的回复,咨询服务器得出这样的回复。这是程序考虑不周全,不能兼容有代理的情况,如果要完全兼容各种环
您好,登陆 您服务器后核实,是因为您是用建站助手搭建的https,因为iis7不支持多站点部署https,所以建站助手开发就设计了前端nginx代理iis的方式,如果您直接在iis上部署https,就可以直接用$_SERVER['HTTPS']获取https状态,现在您需要用
$_SERVER['HTTP_FROM_HTTPS'] 获取on,
这是程序考虑不周全,不能兼容有代理的情况,如果要完全兼容各种环境,
获取https判断的时候要多条件判断,参考代码:
<?php
$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER["HTTP_FROM_HTTPS"])&&$_SERVER["HTTP_FROM_HTTPS"]=='on')||(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
echo $http_type . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
?>
|