修改的东西
app/function/web.function.php
// 增加最后的判断: || $_SERVER['HTTP_CF_VISITOR']
function http_type(){
if( (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') ||
(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') ||
$_SERVER['SERVER_PORT'] === 443 || $_SERVER['HTTP_CF_VISITOR']
){
return 'https';
}
return 'http';
}
function get_host() {
$httpType = http_type();
// 增加这里
$port = $_SERVER['SERVER_PORT']=='80' ? '' : ':'.$_SERVER['SERVER_PORT'];
$host = $_SERVER['SERVER_NAME'].$port;
$host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'].$port : $host;
// 修改的内容结束
if(isset($_SERVER['HTTP_X_FORWARDED_HOST'])){//proxy
$hosts = explode(',', $_SERVER['HTTP_X_FORWARDED_HOST']);
$host = trim($hosts[0]);
}else if(isset($_SERVER['HTTP_X_FORWARDED_SERVER'])){
$host = $_SERVER['HTTP_X_FORWARDED_SERVER'];
}
// 如果域名相同 则根据referer自适应https;
if(isset($_SERVER['HTTP_REFERER'])){
$urlInfo = parse_url($_SERVER['HTTP_REFERER']);
if($urlInfo['host'] == trim($host,'/')){
if($httpType == 'http' && $urlInfo['scheme'] == 'https'){$httpType = 'https';}
}
}
return $httpType.'://'.trim($host,'/').'/';
}
评论 (0)