【发布时间】:2021-09-07 23:25:55
【问题描述】:
当我尝试检测是否启用了 HTTPS 时,我有一个奇怪的行为:
$ssl=(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http");
$expected=$ssl.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo $ssl.'<br/>';
echo $ssl.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'<br/>';
echo $ssl.'<br/>';
echo $ssl.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'<br/>';
结果:
http
https://<MYDOMAIN>/beta/test.php
http
http<MYDOMAIN>/beta/test.php
为什么,在第二行,它说的是 httpS 而只是在 http 之前和之后?
运行 PHP:7.4.20(启用 OPcache)
谢谢
【问题讨论】:
-
你能删除所有的连接,只删除
echo $ssl;两次吗?那它还这样做吗?
标签: php ssl https server php-7