301重定向的兩種實(shí)現(xiàn)方法
來(lái)源:網(wǎng)絡(luò) 發(fā)布時(shí)間:2020-12-25 查看次數(shù):1265
從搜索引擎優(yōu)化角度出發(fā),301重定向是網(wǎng)址重定向最為可行的一種辦法。當(dāng)網(wǎng)站的域名發(fā)生變更后,搜索引擎只對(duì)新網(wǎng)址進(jìn)行索引,同時(shí)又會(huì)把舊地址下原有的外部鏈接如數(shù)轉(zhuǎn)移到新地址下,從而不會(huì)讓網(wǎng)站的排名因?yàn)榫W(wǎng)址變更而收到絲毫影響。同樣,在使用301永久性重定向命令讓多個(gè)域名指向網(wǎng)站主域時(shí),亦不會(huì)對(duì)網(wǎng)站的排名產(chǎn)生任何負(fù)面影響。
一般來(lái)說(shuō),有以下兩種方法可以實(shí)現(xiàn)301重定向。
修改.htaccess文件
代碼如下:
RewriteEngine On
RewriteCond %{HTTP_HOST} ymars.com$ [NC]
RewriteRule ^(.*)$ http://ymars.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ymars.info$ [NC]
RewriteRule ^(.*)$ http://ymars.com/$1 [R=301,L]
關(guān)鍵代碼就是2句話:
RewriteCond %{HTTP_HOST} ymars.com$ [NC]
RewriteRule ^(.*)$ http://ymars.com/$1 [R=301,L]
上面的域名是需要被重定向的舊域名,下面的是現(xiàn)在網(wǎng)站的域名。
使用PHP的重定向代碼
新建一個(gè)index.php文件,然后參考下面代碼按自己的重定向要求做簡(jiǎn)單修改:
<?php
$the_host = $_SERVER['HTTP_HOST'];
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
switch ($the_host)
{
case "www.nowamagic.tk":
case "nowamagic.tk":
$location = "Location: http://ymars.com" . $request_uri;
break;
case "blog.nowamagic.tk":
$location = "Location: http://blog.ymars.com" . $request_uri;
break;
case "www.moiya.tk":
case "moiya.tk":
$location = "Location: http://ymars.com";
break;
default:
$location = "Location: http://ymars.com";
break;
}
header('HTTP/1.1 301 Moved Permanently');
header($location);
exit();
?>
如果只要對(duì)一個(gè)域名進(jìn)行重定向,可以把代碼簡(jiǎn)化成下面的形式:
<?php
$the_host = $_SERVER['HTTP_HOST'];//取得進(jìn)入所輸入的域名
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判斷后面的請(qǐng)求部分
if($the_host !== 'ymars.com')//ymars.com是我現(xiàn)在的域名
{
header('HTTP/1.1 301 Moved Permanently');//發(fā)出301頭部
header('Location: http://ymars.com'.$request_uri);//跳轉(zhuǎn)到我的新域名地址
exit();
}
?>
注意,最后的exit()函數(shù)是一定要寫(xiě)的,我最初就沒(méi)有寫(xiě),結(jié)果只能重定向首頁(yè),像http://www.infoo.com.cn/webnews這樣的網(wǎng)頁(yè),就無(wú)法進(jìn)行重定向。
最后,關(guān)于重定向的一些細(xì)節(jié):如果要對(duì)三個(gè)域名進(jìn)行重定向,重定向前,首先將這三個(gè)域名作為Addon Domain綁定到我的服務(wù)器上去,并讓這三個(gè)域名指向同一個(gè)文件夾,這樣,只要修改這一個(gè)文件夾中的.htaccess文件或者index.php文件就可以了。如果沒(méi)有.htaccess文件或者index.php文件,新建一個(gè)即可。
【聲明:信息來(lái)自網(wǎng)絡(luò),如有侵權(quán),聯(lián)系既刪?!?br>
一般來(lái)說(shuō),有以下兩種方法可以實(shí)現(xiàn)301重定向。
修改.htaccess文件
代碼如下:
RewriteEngine On
RewriteCond %{HTTP_HOST} ymars.com$ [NC]
RewriteRule ^(.*)$ http://ymars.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ymars.info$ [NC]
RewriteRule ^(.*)$ http://ymars.com/$1 [R=301,L]
關(guān)鍵代碼就是2句話:
RewriteCond %{HTTP_HOST} ymars.com$ [NC]
RewriteRule ^(.*)$ http://ymars.com/$1 [R=301,L]
上面的域名是需要被重定向的舊域名,下面的是現(xiàn)在網(wǎng)站的域名。
使用PHP的重定向代碼
新建一個(gè)index.php文件,然后參考下面代碼按自己的重定向要求做簡(jiǎn)單修改:
<?php
$the_host = $_SERVER['HTTP_HOST'];
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
switch ($the_host)
{
case "www.nowamagic.tk":
case "nowamagic.tk":
$location = "Location: http://ymars.com" . $request_uri;
break;
case "blog.nowamagic.tk":
$location = "Location: http://blog.ymars.com" . $request_uri;
break;
case "www.moiya.tk":
case "moiya.tk":
$location = "Location: http://ymars.com";
break;
default:
$location = "Location: http://ymars.com";
break;
}
header('HTTP/1.1 301 Moved Permanently');
header($location);
exit();
?>
如果只要對(duì)一個(gè)域名進(jìn)行重定向,可以把代碼簡(jiǎn)化成下面的形式:
<?php
$the_host = $_SERVER['HTTP_HOST'];//取得進(jìn)入所輸入的域名
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判斷后面的請(qǐng)求部分
if($the_host !== 'ymars.com')//ymars.com是我現(xiàn)在的域名
{
header('HTTP/1.1 301 Moved Permanently');//發(fā)出301頭部
header('Location: http://ymars.com'.$request_uri);//跳轉(zhuǎn)到我的新域名地址
exit();
}
?>
注意,最后的exit()函數(shù)是一定要寫(xiě)的,我最初就沒(méi)有寫(xiě),結(jié)果只能重定向首頁(yè),像http://www.infoo.com.cn/webnews這樣的網(wǎng)頁(yè),就無(wú)法進(jìn)行重定向。
最后,關(guān)于重定向的一些細(xì)節(jié):如果要對(duì)三個(gè)域名進(jìn)行重定向,重定向前,首先將這三個(gè)域名作為Addon Domain綁定到我的服務(wù)器上去,并讓這三個(gè)域名指向同一個(gè)文件夾,這樣,只要修改這一個(gè)文件夾中的.htaccess文件或者index.php文件就可以了。如果沒(méi)有.htaccess文件或者index.php文件,新建一個(gè)即可。
【聲明:信息來(lái)自網(wǎng)絡(luò),如有侵權(quán),聯(lián)系既刪?!?br>