我正在转移到新的域名,我需要将所有传入的链接重定向到新的域名。所有页面都在两个网站上。
(例如:www.oldsite.com/services.php和www.exemple.com/services.php都是有效的和相同的。)
我想知道我的代码是否适合搜索引擎优化而不会弄乱.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);
} ?>
答案 0 :(得分:1)
几点:
HTTP_HOST
(请求的主机名),而不是SERVER_NAME
。strpos
,我只会比较两个主机名并重定向,如果它们不相等考虑到这一点,我可能会将您的代码重写为:
<?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 verison(假设启用了mod_rewrite)将是:
RewriteEngine On
RewriteCond %{HTTP_HOST} !(^www.exemple.ca)
RewriteRule (.*) http://www.exemple.ca/$1 [R=301,L]
答案 1 :(得分:0)
301
就像SEO一样友好。它向蜘蛛表明该页面已永久移动。