0

我正在迁移到一个新域名,我需要将所有传入链接重定向到新域名。所有页面都在两个网站上。

(例如:www.oldsite.com/services.php 和 www.exemple.com/services.php 都是活动的并且相同。)

我想知道我的代码是否对 SEO 友好而不会弄乱 .htaccess 文件。

<?php
$referer = $_SERVER['SERVER_NAME'];
$domain = "www.exemple.ca";
$uri = $_SERVER['REQUEST_URI'];

if(strpos($referer,$domain) === false) {
    header( "HTTP/1.1 301 Moved Permanently" );
    header( "Status: 301 Moved Permanently" );
    header( "Location: http://www.exemple.ca$uri" );
    exit(0);
} ?>
4

2 回答 2

1

几点:

  • 您可能想要HTTP_HOST(请求的主机名),而不是SERVER_NAME.
  • 假设您没有使用任何子域,则无需使用strpos,我只会比较两个主机名并在它们不相等时重定向
  • 您只需要一个 301 标头
  • htaccess 会比使用 PHP 快得多,特别是如果你已经有一个 htaccess 文件

考虑到这一点,我可能会将您的代码重写为:

<?php
$referer = $_SERVER['HTTP_HOST'];
$domain = "www.exemple.com";
$uri = $_SERVER['REQUEST_URI'];

if($referer != $domain) {
    header( "Location: http://www.exemple.ca$uri" true, 301);
    exit(0);
} ?>

您可能也只想对 GET 请求执行此操作。

htaccess 版本(假设 mod_rewrite 已启用)将是:

RewriteEngine On

RewriteCond %{HTTP_HOST} !(^www.exemple.ca)
RewriteRule (.*) http://www.exemple.ca/$1 [R=301,L]
于 2013-02-28T17:22:45.873 回答
0

301与 SEO 一样友好。它向蜘蛛表明该页面已永久移动。

于 2013-02-28T17:19:51.490 回答