在5月份的時候,因為對一個網站改版,導致大量連結失效,正好5月底GOOGLE PR大更新,這個網站的PR直接從3降低到2,並且收錄也急劇下滑,可以說網站的大幅度改版是導致本次PR降低的主要因素,後在GOOGLE的網站管理後台也驗證了這個結論,於是趕緊使用JAVASCRIPT進行了404跳轉定向,從實際的測試效果來看,GOOGLE對404跳轉也是支援的,不會懲罰該網站的權值,可是根據IIS日誌分析,感覺BAIDU spider對404的重新導向似乎無動於衷,於是近日乾脆對原失效的連結重新設定301重新導向。
一、IIS 301重新導向設定
通過本次設定IIS的重新導向,感覺還是比較方便的。下面就說一下IIS的重新導向方法,因為網站改版是面向目錄的遷移的,所以不得不瞭解以下幾個微軟的IIS定向參數:
我們在設定URL重新導向的時候是可以使用帶參數形式URL的,因為畢竟經常面對的URL是很多,要是就那麼一兩個頁面301重新導向隨便怎麼整都可以了。
參數1:$S ——傳遞URL的尾碼到新的URL;
參數2:$P——傳遞URL 中的query參數到新的URL,不包括問號(?)
參數3:$Q——傳遞URL中的query參數到新的URL,包括問號(?),,所以在設定URL地址時,後面不要帶問號,比如:
將http://www.jb51.net/catalog.asp?cate=os&page=1,重新導向到http://www.jb51.net/category.php?cate=1&page=1
只需要在IIS裡設定catelog.asp檔案設定重新導向到 category.php$Q。
參數4:$V——傳遞請求的URL,但是不包括伺服器名和任何參數。
另外還有使用萬用字元重新導向,這裡不常用暫時不講解。
因為我們重新導向多個目錄,所以,如果單個去設定不同的定向檔案,那麼IIS設定起來將會非常麻煩,但是如果都定向到一個檔案然後再重新導向,又會因為$_SERVER['HTTP_REFERER']無法取道對應的引用頁面,結果為空白,所以不得不採用上面的參數進行傳遞,這時候只需要加個參數就可以解決引用頁面的傳遞問題,比如/301.php?go=$V,這樣就可以直接在php檔案中進行URL 301重新導向跳轉處理了。
樣本: 複製代碼 代碼如下:<?php
$url=substr($_GET['go'],1);//去掉最前面的斜杠
$e=explode('/',$url);//分割字串
//判斷並設定新的URL
$newurl='http://www.jb51.net';
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$newurl);
?>
二、APACHE 301重新導向
以上處理是面向IIS的,如果伺服器採用APACHE,那麼要比起IIS重新導向要簡單的多,只需要修改.htaccess檔案,單獨定向即可,當然htaccess檔案也是支援Regex的,可以根據實際情況使用。
目錄重新導向樣本: 複製代碼 代碼如下:<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
Options Indexes
ErrorDocument 404 /index.html
DirectoryIndex index.html default.html index.php index.htm default.htm
Redirect permanent /abc/ http://www.jb51.net/
Redirect permanent /cde/ http://www.jb51.net/
Redirect permanent /fgh/ http://www.jb51.net/
order deny,allow
這樣就可以實現APACHE 的301永久重新導向。
全站301重新導向樣本: 複製代碼 代碼如下:Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^abc.com [NC]
RewriteRule ^(.*)$ http://www.jb51.net/$1 [L,R=301]
特別提醒,完成301重新導向設定後一定要實際測試一下到底是否正確返回301狀態代碼,附一個測試地址:
http://www.seoconsultants.com/tools/headers.asp
以上地址在輸入測試URL之後,會自動跳轉到測試結果位置,即時查看頁面的返回狀態代碼,非常方便。