在"Location:"标头中使用协议相对 URI



我在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":");

相关内容

  • 没有找到相关文章

最新更新