2011-05-02 85 views
13

嗨我有一个新的域,并希望将我的用户重定向到新域的等效路径。重定向到新域的相同路径

所以,如果他们继续:oldsite.com/money.php?value=1

那么就应该引导他们到:newsite.com/money.php?value=1

我有所有页面都是相同的header.php,所以这可以通过一个简单的PHP代码来完成吗?

+0

你要做到这一点与PHP脚本?我不知道你的域名在哪里,但是你不能为你设置一些设置吗? – Ruben 2011-05-02 08:59:19

回答

19

我会给你2个功能,可能对其他一些事情有用;

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']}"); 
} 

当然使用.htaccess更容易,对SEO更好;

RewriteEngine on 
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L] 

我希望这有助于

+2

我一定会用.htaccess方法。 – Revenant 2011-05-02 09:13:44

+2

你可以在PHP脚本中发送一个301头文件,它会从SEO角度看到类似的效果。 – 2011-05-02 09:14:37

+1

是的,我可以补充说,它仍然不比.htaccess – Revenant 2011-05-02 09:16:30

7

像这样的东西应该工作:

$uri = $_SERVER['REQUEST_URI']; 
Header("HTTP/1.1 301 Moved Permanently"); 
Header("Location: http://newsite.com$uri"); 

但是,如果你可以修改你的web服务器的配置,而不是,这将是一个更好的地方做。

+0

'script_name'不包含获取变量 – Teneff 2011-05-02 09:06:14

+0

正确,谢谢。固定。 – Thilo 2011-05-02 09:10:17

-1

您可以使用此:

$new_domain = "http://example.com"; //your new domain 
$uri = $_SERVER['REQUEST_URI']; // URL from the request with the get variables 
header("Location: " . $new_domain . $uri); 
8

在PHP中你不应该这样做。这些东西可以在你的.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] 

此代码会重定向到olddomain.com/page.phpnewdomain.com/page.php

它还将文件夹重定向:olddomain.com/folder/newdomain.com/folder/

通过使用此代码谷歌还将理解您正在切换网域,并且不会降低双倍内容的网页排名。

0

我喜欢用这个代码:

// BEGIN redirect domain 
$domainRedirect = 'myNewDomain.com'; 
if(
($_SERVER['HTTP_HOST'] != $domainRedirect) 
){ 
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://".$domainRedirect.$_SERVER['REQUEST_URI']); 
exit; 
} 
// END redirect domain 

这样的:

header("HTTP/1.1 301 Moved Permanently"); 

是可选的,但对于搜索引擎优化的更好:(https://moz.com/learn/seo/redirection

相关问题