I want to redirect all www.domain.com requests to domain.com with PHP, basically:
if (substr($_SERVER['SERVER_NAME'], 0, 4) === 'www.') { header('Location: http://' . substr($_SERVER['SERVER_NAME'], 4)); exit(); }
However I do want to maintain the requested URL like in SO, for e.g.:
http://www.stackoverflow.com/questions/tagged/php?foo=bar
Should redirect to:
http://stackoverflow.com/questions/tagged/php?foo=bar
I don't want to rely on .htaccess
solutions, and I'm unsure which $_SERVER
vars I'd have to use to make this happen. Also, preserving the HTTPS protocol would be a plus.
How should I do this?
In short, the PHP header not redirecting error occurs mainly due to the absence of ob_start() function, incorrect header formats, and so on.
Try this:
if (substr($_SERVER['HTTP_HOST'], 0, 4) === 'www.') { header('Location: http'.(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on' ? 's':'').'://' . substr($_SERVER['HTTP_HOST'], 4).$_SERVER['REQUEST_URI']); exit; }
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