重定向到新域上的相同路径

Mic*_*ael 14 php apache dns redirect

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

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

然后它应该指导他们:newsite.com/money.php?value=1

我对所有页面都有相同的header.php,所以可以用一个简单的php行完成吗?

Rev*_*ant 20

我会给你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']}" );
}
Run Code Online (Sandbox Code Playgroud)

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

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

我希望这有帮助

  • 我肯定会选择.htaccess方法. (3认同)
  • 您可以在PHP脚本中发送301标题,从SEO角度来看它也会有类似的效果. (3认同)

Thi*_*ilo 8

这样的事情应该有效:

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

但是,如果您可以修改Web服务器的配置,那么这将是一个更好的地方.


RJD*_*D22 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]
Run Code Online (Sandbox Code Playgroud)

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

它还会重定向文件夹:olddomain.com/folder/tonewdomain.com/folder/

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