I note in the PHP manual which states the following:
HTTP/1.1 requires an absolute URI as argument to » Location: including the scheme, hostname and absolute path, but some clients accept relative URIs.
To facilitate users with preference for a HTTPS everywhere connection, I am thinking of changing the headers in my PHP scripts from:
header("Location: http://www.example.com/");
to header("Location: //www.example.com/");
I have tested the above code to be working on my firefox browser, but I am not sure whether it is an advisable thing to do. Or whether I should extract the protocol from $_SERVER
variable and put it in.
The HTTPbis update allows relative URIs. While not specifically mentioned, this includes protocol-relative URLs.
(It's foremost an update to the HTTP/1.1 spec that documents established browser behaviour.)
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" : "");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With