美文网首页
PHP 检测是否 HTTPS 环境

PHP 检测是否 HTTPS 环境

作者: YaowenZ | 来源:发表于2018-03-08 16:37 被阅读0次

    官方手册中的有用 $_SERVER['HTTPS'] 变量去判断,但实际上目前很多服务器并没有设置此参数,因为需要结合其他手段。

    $_SERVER['HTTP_X_FORWARDED_PROTO']
    $_SERVER['HTTP_X_FORWARDED_PORT']
    

    可以通过这两个变量来判断,ZF里 Uri::getScheme() 也是使用这两个变量进行判断的。

    下面是示例代码:

    if (php_sapi_name() == "cli") {
          return '';
    }
           
    $schema = 'http://';
    if ((!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off')
            || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO'])
                && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
        ) {
        $scheme = 'https://';
    }
    return $scheme;
    

    更多可以参考此StackOverflow的问题:
    https://stackoverflow.com/questions/1175096/how-to-find-out-if-youre-using-https-without-serverhttps

    相关文章

      网友评论

          本文标题:PHP 检测是否 HTTPS 环境

          本文链接:https://www.haomeiwen.com/subject/hajyfftx.html