Som*_*gOn 6 php apache webserver
我的网站有一个SSL证书,我正在点击https://mysite.com/info.php,但是在PHP变量部分下没有报告_SERVER ["HTTPS"].我相信这会导致Drupal站点出现问题,其中一些URL被写入页面,因为https:// ...其他人正在写为http:// ...
是什么决定了_SERVER ["HTTPS"]是否已设置?
编辑:这可能是我的问题的答案在服务器发送回检测HTTPS与HTTP没有任何用处.可能是负载均衡器问题
事实证明,由于处理SSL加密/解密的Load Balancer,Web服务器没有获得$ _SERVER ["HTTPS"],但是设置了$ _SERVER ["HTTP_USESSL"]并且可以用作闪存SSL流量.
小智 7
它在文档中说 $_SERVER['HTTPS']
Set to a non-empty value if the script was queried through the HTTPS protocol.
Run Code Online (Sandbox Code Playgroud)
所以
function checkHTTPS() {
if(!empty($_SERVER['HTTPS']))
if($_SERVER['HTTPS'] !== 'off')
return true; //https
else
return false; //http
else
if($_SERVER['SERVER_PORT'] == 443)
return true; //https
else
return false; //http
}
Run Code Online (Sandbox Code Playgroud)
小智 5
代理/负载均衡器背后
$_SERVER['SERVER_PORT'] 总是 80
$_SERVER["HTTPS"] 和 $_SERVER["HTTP_USESSL"] 为 NULL
我使用了 $_SERVER['HTTP_X_FORWARDED_PROTO'] 返回 http 或 https
| 归档时间: |
|
| 查看次数: |
17937 次 |
| 最近记录: |