Redirect to same path on new domain
Something like this should work:
$uri = $_SERVER['REQUEST_URI'];
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://newsite.com$uri" );
But if you can modify your web server's configuration instead, that would be a better place to do it.
You shouldn't do this in PHP. These things can be easily done in your .htaccess:
#Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.olddomain.com$[OR]
RewriteCond %{HTTP_HOST} ^olddomain.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
This code will redirect olddomain.com/page.php
to newdomain.com/page.php
It will also redirect folders: olddomain.com/folder/
to newdomain.com/folder/
By using this code google will also understand that you are switching domains and won't lower your page ranks for double content.
I will give you 2 functions which could be useful for some other thing;
function currentURL() {
$pageURL = 'http';
($_SERVER["SERVER_PORT"] === 443) ? $pageURL .= "s" : '';
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
function redirect2NewDomain () {
$url = currentURL();
if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED) === FALSE) {
return false;
}
# Get the url parts
$parts = parse_url($url);
Header( "Location : {$parts['scheme']}://{$parts['host']}" );
}
Ofcourse using .htaccess is much more easier and will be better for SEO;
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
I hope this helps