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