【发布时间】:2012-07-25 13:19:18
【问题描述】:
我的网站有一个 SSL 证书,我正在点击 https://mysite.com/info.php,但在 PHP 变量部分下没有报告 _SERVER["HTTPS"]。我相信这会导致 Drupal 网站出现问题,其中一些 URL 以 https://... 形式写入页面,而另一些则以 http://... 形式写入页面。
什么决定是否设置了 _SERVER["HTTPS"]?
编辑:这可能是我的问题Detecting HTTPS vs HTTP on server sending back nothing useful 的答案。可能是负载平衡器问题
【问题讨论】:
-
这是在什么网络服务器上运行的?
-
Apache,我很确定负载均衡器是问题所在。 IT部门提到他们专门设置了PHP变量HTTP_USESSL。安全页面模块已更改为检查该变量而不是 HTTPS。
-
与其更改默认模块(这将在下次升级时中断),不如考虑在 boostrap 文件中的某处执行
$_SERVER['HTTPS'] = isset( $_SERVER['HTTP_USESSL'] ) ? 'YES' : '' ),这样以后的升级不会中断。 -
我同意...继承代码。我将来可能会做出这样的改变,这样模块本身就不会被黑客入侵。谢谢。