【问题标题】:How to define was page requested over https or http? [duplicate]如何定义通过 https 或 http 请求的页面? [复制]
【发布时间】:2012-10-12 03:02:56
【问题描述】:

可能重复:
PHP: HTTP or HTTPS? How can one tell?

有没有办法定义这个?

$_SERVER superglogal 不提供此类信息。甚至只是 ['SERVER_PROTOCOL'] ...

【问题讨论】:

    标签: php http https phpinfo


    【解决方案1】:

    如果您的请求是通过 HTTPS 发送的,您将有一个名为“HTTPS”的额外服务器变量

    if( isset($_SERVER['HTTPS'] )  && $_SERVER['HTTPS'] != 'off' ) 
    {
       echo 'HTTPS';
    }
    else
    {
      echo 'HTTP';
    }
    

    【讨论】:

    • 这里有个小问题。 $_SERVER 的元素由 Web 服务器生成,因此它可能缺少 https 条目,因为服务器在通过 https:// 请求时不会生成一个。
    • 注意,当使用带有 IIS 的 ISAPI 时,如果请求不是通过 HTTPS 协议发出的,则该值将为 'off',因此test 应该是 isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' 才能跨 api。
    猜你喜欢
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 2013-01-20
    • 1970-01-01
    • 2021-05-07
    相关资源
    最近更新 更多