CI框架:花生壳将本地http服务映射成https,根据$_SERVER无法判断出浏览器访问地址的协议导致redirect跳转地址不正确

配置类的 base_url 是这么得到的:

$baseUrl = str_replace('\\', '/', dirname($_SERVER['SCRIPT_NAME']));
$baseUrl = trim($baseUrl, '/');
$baseUrl .= '/';
$proto = is_https() ? 'https://' : 'http://';
$config['base_url'] = $proto.$_SERVER['HTTP_HOST'].'/'.$baseUrl;

如访问 https://[花生壳端口映射域名]/[项目名]/
is_https () 方法会返回 false,导致上面 base_url 值变成 http://[花生壳端口映射域名]/[项目名]/

请问各位有遇到这种情况么?有什么思路可以解决吗?

讨论数量: 4

你看看 $_SERVER 是不是有个 X-Forwarded-Proto 啥的。把 $_SERVER 打出来

2年前 评论
Zhaojh (楼主) 2年前
cevin (作者) 2年前
Zhaojh (楼主) 2年前