How do I properly use header function, so
header("location: http://".$_SERVER['HTTP_HOST']."/?para=abc"); //for http
and
header("location: https://".$_SERVER['HTTP_HOST']."/?para=abc"); //for https
could be written in 1 string if possible?
.htaccess file will take care of all http pages to be redirected to https with no problem, but I believe it makes sense to use a proper syntax for http/https pages in header("location:...)
, so it is correct for all browsers.
$protocol='http';
if (isset($_SERVER['HTTPS']))
if (strtoupper($_SERVER['HTTPS'])=='ON')
$protocol='https';
header("location: $protocol://".$_SERVER['HTTP_HOST']."/?para=abc");
You could also use the following code:
header("Location: //www.google.com");
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != '') {
header("location: https://".$_SERVER['HTTP_HOST']."/?para=abc");
} else {
header("location: http://".$_SERVER['HTTP_HOST']."/?para=abc")
}
This should work for Apache, at least.
You can isolate the protocol-type by doing something like this:
$protocol = isset($_SERVER['HTTPS']) and 'https' or 'http'
Then
header("location: $protocol://".$_SERVER['HTTP_HOST']."/?para=abc");
You can get the protocol by following code:
$protocol = strtolower( substr( $_SERVER[ 'SERVER_PROTOCOL' ], 0, 5 ) ) == 'https' ? 'https' : 'http';
and then redirect like this
header( 'location: ' . $protocol . '://' . $_SERVER[ 'HTTP_HOST' ] . '/?para=abc' );