我在PHP手册中注意到了以下内容:
HTTP/1.1需要一个绝对URI作为»位置:包括方案、主机名和绝对路径,但有些客户端接受相对URI。
为了方便喜欢HTTPS无处不在连接的用户,我正在考虑将PHP脚本中的头从更改为
header("Location: http://www.example.com/");
至header("Location: //www.example.com/");
我已经测试了上面的代码在我的firefox浏览器上运行,但我不确定这是否是一件明智的事情。或者我是否应该从$_SERVER
变量中提取协议并将其放入。
HTTPbis更新允许相对URI。虽然没有特别提及,但这包括与协议相关的URL。
(最重要的是对HTTP/1.1规范的更新,该规范记录了已建立的浏览器行为。)
根据HTTP协议的建议,您应该使用绝对URI。您仍然可以使用$_SERVER['HTTPS']
变量检测协议,条件如下:
$protocol="http"。(!空($_SERVER['HTTPS'])?"s":");