asp重定向

asp重定向是當用戶或搜尋引擎向網站伺服器發出瀏覽請求時,伺服器返回的HTTP數據流中頭信息(header)中的狀態碼的一種,表示本網頁永久性轉移到另一個地址,並自動將請求者轉到新位置。重定向常用於新舊域名更替期間以減少流量流失和404錯誤

基本介紹

  • 中文名:asp重定向
  • 外文名:asp redirect
  • 類型301轉向的一種
  • 屬性:連線狀態
域名的重定向,301 Redirect實現網頁重定向,IIS伺服器實現301重定向,Apache伺服器實現301重定向,舊域名重定向到新域名,網站302重定向使用不當導致被GOOGLE懲罰,網站伺服器回響網頁瀏覽請求的運作流程,確保網站實施了正確的301重定向,資深SEO專家Dan Thies的看法和建議,五種常見的網頁自動跳轉方法,
重定向說白了就是通過各種的方法將各種網路請求重新定個方向轉到其它位置。
如:網頁中的重定向

域名的重定向

路由選擇的變化也是對數據報文經由路徑的一種重定向
在我們的網站建設中,時常會遇到需要網頁重定向的情況:象網站調整,如改變網頁目錄結構,網頁被移到一個新地址,再或者,網頁擴展名改變,如因套用需要把.php改成.Html或.shtml,在這種情況下,如果不做重定向,則用戶收藏夾或搜尋引擎資料庫中舊地址只能讓訪問客戶還會得到一個404頁面錯誤信息,訪問流量白白喪失;再如某些註冊了多個域名的網站,也需要通過重定向讓訪問這些域名的用戶自動跳轉到主站點,等等。

301 Redirect實現網頁重定向

IIS伺服器實現301重定向

* 打開internet信息服務管理器,在欲重定向的網頁或目錄上按右鍵
* 選擇“重定向到URL”
* 在“重定向到”輸入框中輸入要跳轉到的目標網頁的URL地址
* 選中“資源的永久重定向”(切記)
* 最後點擊“套用”

Apache伺服器實現301重定向

相比較來說,Apache實現起來要比IIS簡單多了。在Apache中,有個很重要的檔案.htaccess,通過對它的設定,可以實現很多強大的功能,301重定向只是其中之一。
Redirect permanent / http://www.48pp.com/ (將目錄下內容重定向到http://www.48pp.com/ )
redirect permanent /index.php http://www.48pp.com/index.php?go=category_6(將網頁index.php重定向到http://www.48pp.com/index.php?go=category_6)
通過合理地配置重定向參數中的正則表達式,可以實現更複雜的匹配。
PHP下的301重定向
<?
Header( "HTTP/1.1 301 Moved Permanently" ) ;
Header( "Location: http://www.48pp.com" );
?
ASP下的301重定向
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.48pp.com"
%>
ASP .NET下的301重定向
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader ("Location","http://www.48pp.com");
}
</script>
ColdFusion下的301重定向
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://2008sili.com">

舊域名重定向到新域名

創建一個.htaccess檔案,並將下面提供的代碼寫入檔案內,它可以確保舊域名所有的目錄或者網頁正確的跳轉到新域名內。
記住.htaccess檔案一定要放在舊網站的根目錄下,並且新網站要和舊網站保持相同的目錄結構及網頁檔案
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
請將上面的www.domain.com修改成你想要跳轉到的域名。
此外,我建議大家歸總舊網站的外部連結,並聯繫相應的站點修改導入鏈鏈的URL,以指向新站點。
注意:.htaccess檔案只有在使用安裝有Mod Rewrite模組的Apache作為WEB伺服器的Linux主機上才能起作用
域名301重定向到www的二級域名
在以前的文章中我反覆提及過:www.domain.com是domain.com域下的一個二級域名,並對二級域名和一級目錄之間如何選擇以及網站結構最佳化做了一個詳細的分析,有興趣的可以讀一下兩篇文章,網站結構最佳化是SEO中最重要。
OK,繼續域301跳轉到www二級域的實現方式:
創建一個.htaccess檔案,並將下面提供的代碼寫入檔案內,它可以確保所有來自對domain.com的請求都轉向到對www.domain.com進行請求。記住.htaccess檔案一定要放在舊網站的根目錄下,並且新網站要和舊網站保持相同的目錄結構及網頁檔案
Options +FollowSymlinks
RewriteEngine on
rewritecond % ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
請將上面的domain.com和www.domain.com修改成你想要跳轉到的域名。
注意:.htaccess檔案只有在使用安裝有Mod Rewrite模組的Apache作為WEB伺服器的Linux主機上才能起作用
301重定向檢測工具
配置完成後,一定認真檢查一下是否正確。Internet有很多類似的Server Header檢查工具,如Check Server Headers Tool - HTTP Status Codes Checker

網站302重定向使用不當導致被GOOGLE懲罰

Business.com是網上最大的商業搜尋引擎和分類目錄,以專業提供商業信息而享負盛名,包括近19萬網頁。若以“business”為關鍵字在Google中進行搜尋,該網站名列第一。不過在9月5日,Business.com遇到一件蹊蹺之事:它的首頁由PR8變成了PR0, 而且Google搜尋結果中找不到首頁。好在被“蒸發”的只是首頁,不過慶幸的是第二天首頁又回到了Google的搜尋結果,但PR仍舊為0。
Business.com的問題出在它的重定向命令上。該網站讓business.com跳轉到www.business.com,這種重定向本該是永久性的。我們知道,301屬於永久性重定向,而302則屬於臨時性重定向,只有當一個網站或網頁在24到48小時之內臨時移到其它位置的情況下才能使用該命令。但Business.com卻錯誤地使用了“HTTP/1.1302 Object Moved”狀態碼。
其實網站重定向極為普遍,譬如不滿意原來的域名而申請了一個新域名;買下容易被人錯拼的域名,防止客戶因為拼錯URL而找不到網站,等等。可是,很多人卻會由於使用了錯誤的重定向狀態碼而遭“滅站之災”,就象Business.com。儘管他們的重定向理由充分合理,然而若使用不當,則可能被Google誤認為是利用多個域名指向同一網站,那么你的網站就會被封掉,罪名是“利用重複的內容來干擾Google搜尋結果的網站排名”。Business.com就是最好的前車之鑑。只不過大多數使用錯誤重定向參數的網站沒Business.com這么幸運,一個小小的重定向就可能使網站前功盡棄,只能從頭來過:重新申請新域名,重新發布新網站,等等。記住:Google絕不會同情任何人即使無心犯下的錯誤。

網站伺服器回響網頁瀏覽請求的運作流程

讓我們先來了解一下用戶/搜尋引擎和網站一開始的互動流程。當用戶或搜尋引擎向一個網站伺服器發出網頁瀏覽請求時,該伺服器將:
1.通過域名伺服器(DNS)將域名轉換為網站的IP位址,然後返回給客戶
2.打開一個該IP套接口連線
3.記下通過該套接口的一個HTTP數據流
4.從WEB伺服器接收一個回響請求的HTTP數據流。該數據流包含狀態碼,狀態碼的值由HTTP協定所決定。這裡所說的“HTTP數據流”信息也叫“頭信息(Header)”。頭信息中包括了日期,伺服器類型,通常還會有一條“200 OK”信息。如果一切良好,那么網路伺服器就會將“200 OK”信息以及請求頁面傳送出去。如果網站在這時候已經建立了重定向,那么伺服器就會在頭信息中包含一個“302 Moved Temporarily”或“301 Moved Permanent”之類的回響信息。搜尋引擎會根據伺服器頭信息中的內容作出決定。
網站重定向的注意事項
1.若準備將伺服器上的檔案移到其它地方時,須就以下信息正確地通知搜尋引擎的爬行程式:
- 目標地址:這些檔案被移向何方
- 移動屬性:暫時移走還是永久性移走
2.對擁有多個域名的網站,專家建議應把那些不想在搜尋引擎上推廣的域名用301跳轉命令來永久性重定向。

確保網站實施了正確的301重定向

對於正確實施301重定向,有這樣幾個方法可供大家參考:
1.在.htaccess檔案中增加301重定向指令
2.適用於使用Unix網路伺服器的用戶。通過此指令通知搜尋引擎的spider你的站點檔案不在此地址下。這是較為常用的辦法。形如:Redirect 301 / http://www.48pp.com/
3.在伺服器軟體的系統管理員配置區完成301重定向
適用於使用Window網路伺服器的用戶
4.採用“mod_rewrite”技術
通過該技術進行的改變將在.htaccess檔案中體現出來,形如:
Options +FollowSymLinks
RewriteEngine on
RewriteCond % ^yourdomain.com
RewriteRule ^(.*)$ http://www.48pp.com/$1 [R=permanent,L]
5.綁定/本地DNS(域名別名跳轉)
如果具有對本地DNS記錄進行編輯修改的許可權,則只要添加一個記錄就可以解決此問題。
若無此許可權,則可要求網站託管服務商對DNS伺服器進行相應設定。
DNS伺服器的設定
若要將aaa.domain.com指向www.domain.com,則只需在DNS服務中應增加一個別名記錄,可寫成:aaa IN CNAME www.domain.com。
如需配置大量的虛擬域名,則可寫成:* IN CNAME www.domain.com.
這樣就可將所有未設定的以domain.com結尾的記錄全部重定向到www.domain.com上。
6.用ASP/PHP實現301重定向:
代碼在上面已經介紹過了

資深SEO專家Dan Thies的看法和建議

對於Business.com所遭遇的問題Dan Thies深有體會,因為他也有過類似的遭遇。他的網站上有一個會員跟蹤腳本,其中一個會員的站點通過302命令映射到這個跟蹤腳本,而這個跟蹤腳本又是通過302映射到他的主頁。當在Google中用“keyword research”進行搜尋,他的主頁排名在前十位,然而地址顯示的卻是那個會員的網址。結果使他哭笑不得:訪問者通過Google搜尋結果進入他的網站,而他卻不得不為這些訪問量給那個會員支付報酬! 後來他用robots.txt檔案禁止Spiders跟蹤訪問他的會員跟蹤腳本才算解決了問題。
對於Business.com,Dan Thies認為:“目前Google在302重定向"的處理上還存在一定的問題,但並不表示Google不允許302重定向。Business.com並未遭封或遭到懲罰,它們只是返回了錯誤的回響。”
Dan Thies建議:如果使用了跟蹤URL/腳本,又必須讓訪問者重定向到某一著陸頁,那么一定要在robots.txt檔案中禁止Spiders去訪問第二個重定向。如果沒有對跟蹤URL/腳本進行重定向,而只是把另外一個URL上的內容給複製過來,那么應在robots.txt檔案中禁止Spiders去訪問跟蹤URL,以防因內容重複而遭搜尋引擎懲罰。
301重定向經驗談
一個多域名站主的經驗之談:
“我只有一個網站,主域名是www.domain.com,此外還有諸如domain1.com、domain2.com、domain3.com等總計十幾個域名。所有這些次級域名都映射到www.domain.com,而且所有域名對應的是同一個IP位址。由於事實上我只有一個站點,一個站點又只能對應一個.htaccess檔案,顯然不可能直接修改.htaccess檔案來實現重定向。我採用了如下步驟:
A.把domain1.com從domain.com上獨立出來,讓它成為伺服器上的一個普通獨立網站。
B.為domain1.com創建一個.htaccess文本檔案,並在檔案中設定重定向代碼為:
Redirect permanent / http://www.domain.com/
再將修改後的.htaccess檔案上傳給domain1.com所在伺服器。
這一步也可以在域名控制臺中完成。
C.進入域名控制臺,將所有原來綁定到domain.com上的域名從domain.com上釋放,然後重新綁定到doamin1.com。這樣一來,這些被綁定的域名使用的都是domain1.com的.htaccess檔案,因而也就意味著它們都被永久性重定向到domain.com上了。好了,大功告成! 就這么容易!

五種常見的網頁自動跳轉方法

下面介紹一下五種常見的網頁自動跳轉方法,以及搜尋引擎對這些跳轉方法的辨識能力。
第一種網頁自動跳轉方法:meta refresh自動跳轉法 在網頁的head區域的meta refresh標籤中,加入自動跳轉代碼,可實現網頁的立即或延時自動跳轉。 示例如下: <meta http-equiv="refresh" content="10;url=http://xfbbs.com/"> 上述html代碼中的“10”是延時跳轉的時間,單位是秒。如果設為0,就表示立即跳轉。“http://xfbbs.com”是跳轉的目標地址,可以是同一域名下的站內相對路徑,也可以是不同域名的站外地址。 由於搜尋引擎能夠讀取html,所以對於這種自動跳轉方法,搜尋引擎是能夠自動檢測出來的。 被視為作弊,則主要看跳轉時間。如果跳轉時間為0,就可能會被視為作弊,從而受到懲罰。如果有時間延遲(一般3秒以上),就會被視為正常套用。
第二種網頁自動跳轉方法:body onload自動跳轉法
在網頁載入時通過onload事件指定parent.location進行自動跳轉。 示例如下: <body onload="parent.location='http://xfbbs.com'"> 這種方法與第一種方法一樣,能夠被搜尋引擎識別。
第三種網頁自動跳轉方法:javascript自動跳轉法 javascript可以實現網頁的自動跳轉,如果要實現立即跳轉,將跳轉代碼放在網頁的head區域即可。 示例如下: <script language="javascript"> location.replace("http://xfbbs.com/yule/tietu/") </script> 其中的“http://xfbbs.com/yule/tietu/”是重定向目標地址。 由於搜尋引擎無法解析javascript,所以搜尋引擎便無法識別用javascript腳本進行的自動跳轉。
第四種網頁自動跳轉方法:表單自動跳轉法 對於表單大家都很熟悉,就是將表單中填寫的內容,提交到action參數中指定的url地址中,目標url再對接收到的數據進行處理。利用這一點,我們可間接的實現網頁跳轉,只不過,我們並不需要提交任何表單內容。再結合javascript腳本,可以對表單進行自 動提交。 示例如下: <form name="form1" action=http://xfbbs.com/index.html method="get"> </form> <script language="javascript"> document.form1.submit() </script> 其中form1名稱任意,但二處form1應該統一。action中的url地址必須以檔案名稱結尾,例如“action=http://xfbbs.com/”或“action=http://xfbbs.com/yule”便是不規範寫法。method可以是get也可以是post,但根據我的經驗,提交空表單時最好使用get。 眾所周知,由於搜尋引擎蜘蛛程式是不會填寫表單的,所以搜尋引擎便無法識別通過這種方法實現的網頁自動跳轉。
第五種網頁自動跳轉方法:程式跳轉法(response.redirect 、server.transfer) 每種程式都有各自的頁面跳轉方法,例如asp中使用response.redirect 來進行跳轉,跳轉範例如下: response.redirect "http://xfbbs.com" 它的作用是,asp程式運行到該行代碼後,會立即跳轉到目標url地址中去。 在asp中,除了使用response.redirect 做跳轉外,還有一個跳轉方法,用server.transfer進行跳轉,跳轉範例如下: response.redirect "/yule/tietu/index.html" 注意,這裡的url地址,必須是站內地址,且url地址必須以檔案名稱結尾,例如 response.redirect "/yule/tietu/" 便是錯誤用法。 response.redirect和server.transfer都能實現網頁自動跳轉,但二者也有不同之處,前者可以跳轉到站內url,也可以跳轉到站外url,而後者只能跳轉到站內檔案,且瀏覽器地址欄的url將保持不變。server.transfer還有許多好處,這裡不多詳述,大家可在搜尋引擎中查找它的更多資料。 使用response.redirect 跳轉雖然是在伺服器端完成跳轉的,但它最終是轉換成html後在客戶端執行的,因此,也能被搜尋引擎識別,過多的使用亦會被當作作弊處理。 如果是在同一網站內部的不同網頁間跳轉,建議使用server.transfer跳轉,server.transfer肯定不會被搜尋引擎視為作弊。

相關詞條

熱門詞條

聯絡我們