我在PHP手册中发现如下内容: HTTP/1.1要求在» Location: 中包含完整的URI,包括协议、主机名和绝对路径,但一些客户端也接受相对URI。 为了方便那些想使用HTTPS连接的用户,我想将我的PHP脚本中的头文件从以下代码更改为: header("Location: http://www.example.com/"); 更改为 header("Location: //www.example.com/"); 我已经测试了上述代码在我的Firefox浏览器上可以工作,但我不确定这是否是一个明智的做法。或者我是否应该从 $_SERVER 变量中提取协议并放入其中。
根据HTTP协议的建议,您应该使用绝对URI。 您仍然可以通过使用$_SERVER['HTTPS']变量来检测协议,并使用类似以下条件: $protocol = "http" . (!empty($_SERVER['HTTPS']) ? "s" : "");