【问题标题】:Detect HTTPS with php用 php 检测 HTTPS
【发布时间】:2013-03-07 09:47:33
【问题描述】:

我尝试使用下面的代码检测 https,但全局变量 $_SERVER['https'] 的值始终未定义。

 $secure = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off'|| $_SERVER['SERVER_PORT'] == 443) ? true : false ;

这部分代码位于 opencart 的头部。 SSL 证书已安装并且安全连接正常工作......有什么想法吗?

【问题讨论】:

  • var_export($_SERVER); 见定义,您的特定设置可能会略有不同
  • 您确定 HTTPS 在默认端口 443 上运行吗?如果您想将流量重定向到 HTTPS,您可以更好地使用 .htaccess
  • 您不应该检查$_SERVER['HTTPS'] 是否为空,因为它可能“不”存在。首先检查isset() 会更明智。如果未设置$_SERVER['HTTPS_***PREFIX***'],则说明您未使用 HTTPS。
  • 顺便说一句,不需要? true : false 位——该表达式已经返回一个布尔值。另外,我认为您的操作顺序正确,但通常最好将(A && B) || C 括起来,这样很明显您的意思不是A && (B || C)
  • 好的,谢谢大家,但这个问题实际上是关于 $_SERVER['https'] 的未定义值而不是代码......

标签: php https


【解决方案1】:

在这台服务器上 $_SERVER['https'] 被称为 $_SERVER['http-https']...这是唯一的错误。

【讨论】:

    猜你喜欢
    • 2010-10-01
    • 2016-09-04
    • 2013-02-13
    • 2018-07-08
    • 2011-09-07
    • 1970-01-01
    • 2018-06-25
    • 2011-02-20
    • 1970-01-01
    相关资源
    最近更新 更多