避忌權(quán)重分散,力求權(quán)重集中是網(wǎng)站SEO優(yōu)化的一個(gè)重要內(nèi)容,今天要談的是帶www與不帶www的域名權(quán)重問題,我們的目標(biāo)是不管用什么方法,力求做到帶www與不帶www的域名權(quán)重集中到其中一個(gè)上來。
帶www與不帶www的域名,在域名解析和網(wǎng)站管理上都可以是獨(dú)立的,但是除非特別的原因,否則絕大多數(shù)網(wǎng)站帶www與不帶www的域名都是指向同一個(gè)站點(diǎn),網(wǎng)站內(nèi)容是不分開的,然而盡管如此,搜索引擎仍然會(huì)認(rèn)為帶www與不帶www的域名是代表兩個(gè)不同的網(wǎng)站,在收錄和權(quán)重分配上仍然是分開的。這就是所謂的“權(quán)重分散”,對(duì)于網(wǎng)站SEO優(yōu)化來說,是一個(gè)需要特別重視的部分。本文將要介紹幾種方法,避免帶www與不帶www域名的權(quán)重分散。
1、全站頁面使用301永久重定向
如果你的網(wǎng)站所有頁面不是html的靜態(tài)頁面,使用的是PHP、asp或asp.net的程序,那么要實(shí)現(xiàn)帶www與不帶www域名通過301永久重定向到其中一個(gè)上來是件很容易的事情。我們只需在每個(gè)頁面開頭添加幾行代碼即可。
PHP代碼:
<?php
$the_host = $_SERVER['HTTP_HOST'];//取得當(dāng)前域名
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判斷地址后面是否有參數(shù)
if($the_host == 'webkaka.com')//把這里的域名換上你想要的
{
header('HTTP/1.1 301 Moved Permanently');//發(fā)出301頭部
header('Location: http://howtostagehomes.com'.$request_uri);//跳轉(zhuǎn)到你希望的地址格式
}
?>
ASP代碼:
<%
currentdomain= request.ServerVariables("SERVER_NAME") '獲取地址欄中當(dāng)前的域名。
currenturl=request.ServerVariables("url") '獲取地址欄中的域名后的ASP文件名。
currentrequest=request.ServerVariables("QUERY_STRING") '獲取地址欄中?后面的參數(shù)
If currentdomain="webkaka.com" Then '只有當(dāng)瀏覽的域名是webkaka.com的時(shí)候才做301跳轉(zhuǎn)
moveurl="http://howtostagehomes.com"¤turl '重新組合為http://howtostagehomes.com/
If currentrequest<>"" Then
moveurl=moveurl&"?"¤trequest '因?yàn)檫€有參數(shù),所以將參數(shù)也組合到新的跳轉(zhuǎn)地址中去
End if
'跳轉(zhuǎn)
Response.Status="301 Moved Permanently" '以下兩句實(shí)現(xiàn)301永久性跳轉(zhuǎn)
Response.AddHeader "Location",moveurl
End if
%>
上述代碼可以實(shí)現(xiàn)全站301,但是需要每個(gè)頁面都添加這些代碼,有點(diǎn)麻煩,如果有更簡(jiǎn)單的方法來實(shí)現(xiàn)就更好了。
2、巧用IIS實(shí)現(xiàn)全站重定向
如果你使用的是IIS服務(wù)器,那么實(shí)現(xiàn)全站重定向?qū)⒆兊卯惓:?jiǎn)單,你只需要?jiǎng)觿?dòng)鼠標(biāo),填上幾個(gè)參數(shù),不需要改程序,不需要編寫什么規(guī)則代碼。
如上圖所示,在IIS里首先添加一個(gè)不帶www域名的網(wǎng)站,然后把主目錄設(shè)置下,選中“重定向到URL”及地址即可,后面的“$S$Q”是表示把參數(shù)一起重定向,不要去掉。
3、在html里使用base標(biāo)簽 避免帶與不帶www域名的權(quán)重分散
在head之間添加上這段代碼:
<base href="http://howtostagehomes.com/" />
下面是關(guān)于base標(biāo)記的介紹:
base標(biāo)記是一個(gè)基鏈接標(biāo)記,是一個(gè)單標(biāo)記。用以改變文件中所有連結(jié)標(biāo)記的參數(shù)內(nèi)定值。它只能應(yīng)用于標(biāo)記<head>與</head>之間。
你網(wǎng)頁上的所有相對(duì)路徑在鏈接時(shí)都將在前面加上基鏈接指向的地址。
所以通過這個(gè)方法也可以實(shí)現(xiàn)避免帶與不帶www域名的權(quán)重分散,集中使用同一個(gè)域名。
不過這并不是301重定向。
IE7中注意:
1) 、<html>之前不能加入額外的輸出字符。否則IE7就對(duì) base 不進(jìn)行解析。
2)、< base >是一個(gè)鏈接基準(zhǔn)標(biāo)記,用以改變文件中所有鏈接標(biāo)記的參數(shù)默認(rèn)值。它只能適應(yīng)于文件的開頭部分,即標(biāo)記< head >與< /head >之間。
4、使用.htaccess實(shí)現(xiàn)301重定向
如果空間支持ReWrite URL重寫,網(wǎng)站使用的是PHP程序,那么可以使用.htaccess實(shí)現(xiàn)301重定向。創(chuàng)建一個(gè).htaccess文件,并將下面提供的代碼寫入文件內(nèi),它可以確保所有來自對(duì)domain.com的請(qǐng)求都轉(zhuǎn)向到對(duì)www.domain.com 進(jìn)行請(qǐng)求。記住.htaccess文件一定要放在舊網(wǎng)站的根目錄下,并且新網(wǎng)站要和舊網(wǎng)站保持相同的目錄結(jié)構(gòu)及網(wǎng)頁文件。
PHP代碼實(shí)現(xiàn)用301將不帶WWW的域名重定向:即將webkaka.com統(tǒng)一為howtostagehomes.com
rewriteEngine on
rewriteCond %{http_host} ^webkaka.com[NC]
rewriteRule ^(.*)$ http://www.webkaka.com/$1 [R=301,L]
如何檢測(cè)301重定向
可以在這里看看301重定向是否成功,http://howtostagehomes.com/webCheck.aspx,看header就行了。
小知識(shí):
301與302的區(qū)別
官方說法301、302都是HTTP狀態(tài)的編碼,都代表著某個(gè)URL發(fā)生了轉(zhuǎn)移,不同之處在于:
301 redirect: 301 代表永久性轉(zhuǎn)移(Permanently Moved)。
302 redirect: 302 代表暫時(shí)性轉(zhuǎn)移(Temporarily Moved )。