10

我在PHP 手册中注意到以下内容:

HTTP/1.1 需要一个绝对 URI 作为 » Location 的参数:包括方案、主机名和绝对路径,但一些客户端接受相对 URI。

为了方便偏好HTTPS 无处不在的连接的用户,我正在考虑将我的 PHP 脚本中的标头从以下位置更改:

header("Location: http://www.example.com/");header("Location: //www.example.com/");

我已经测试了上面的代码在我的 Firefox 浏览器上运行,但我不确定这是否是一个可取的事情。或者我是否应该从$_SERVER变量中提取协议并将其放入。

4

2 回答 2

9

HTTPbis更新允许使用相对 URI。虽然没有特别提到,但这包括相对于协议的 URL。

(这首先是对记录已建立浏览器行为的 HTTP/1.1 规范的更新。)

于 2012-09-15T10:54:04.093 回答
2

As suggested by HTTP protocol, you should use absolute URI. You can still detect protocol, by using $_SERVER['HTTPS'] variable, with a condition like:

$protocol = "http" . (!empty($_SERVER['HTTPS']) ? "s" : "");
于 2012-09-15T10:50:28.783 回答