成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET中利用HTTP報頭狀態碼實現SEO

開發 后端
本文將介紹ASP.NET在SEO方面的實現,主要是關于HTTP報頭狀態碼以及內容重定向。希望本文能對大家有所幫助。

我們將在這里介紹一些ASP.NET開發過程中,利用HTTP報頭狀態碼進行SEO的實例。其實這樣的SEO更多的是為了方便檢查錯誤狀態,實現更好的頁面體驗,而不是簡單單純的迎合搜索引擎式的SEO。

我們經常說“404錯誤”,你知道他指的是什么意思么?

404其實是Http報頭所包含的一個“狀態碼”,表明該Http請求失敗。那么除此之外,還有哪些常用的狀態碼呢?這些狀態碼和SEO又有什么關系呢?

每次當用戶代理(可以理解為就是IE和Firefox)向Web站點請求一個URL地址,服務器都會給予回復,回復內容包括兩部分:HTTP報頭,和被請求的內容。但僅從瀏覽器上我們通常只能看到內容而看不到報頭信息。所以,我們需要通過一些瀏覽器插件來觀察他們。就我個人而言,IE我用WebDeveloper;FireFox我用Fiddler。有興趣的朋友可以在網上自行下載,兩個都是相當流行的。 對SEO而言,我們需要了解的狀態代碼有:重定向:301和302 被刪除:404 服務器錯誤:500 我們依次講解,首先將302。302在asp.net中有一個很常見的原型:Response.Redirect(),請看代碼:  

  1. protected void Button1_Click(object sender, EventArgs e)  
  2. {  
  3.     Response.Redirect("~/target.aspx");  
  4.     //Server.Transfer("~/target.aspx");  

source.aspx頁面上一個Button,Click事件中代碼為Response.Redirect(~/target.aspx),點擊source.aspx頁面Button,查看該頁面對應的狀態碼,結果就是302。(如下圖,我使用的是Web Development,不知道為什么enable log之后,就無法再轉到target頁面了?各位同學知道原因的請指點一二)

代碼段1 

但可以查看詳細信息,可以發現302的影響,response指明了要轉向的url。  

代碼段2 

客戶端/服務器之間往返的過程其實是這樣的:

1. 點擊Button,產生回發,回發的目標頁面仍然是source.aspx,所以請求仍由source.aspx頁面進行處理,這樣才能進入source.aspx頁面的Click事件;

2. Click事件中,Response.Redirect(~/target.aspx)所作的事情實際上就是:     

2.1 將回復中Http報頭的狀態碼改成302;     

2.1 指明302指向的頁面就是target.aspx;

3. 瀏覽器(用戶代理)收到回復的報頭信息后,     

3.1 將URL地址欄的地址改成target.aspx;    

3.2 向target.aspx發出請求 和Response.Redirect()同樣著名的是Server.Transfer()。但使用Server.Transfer,你會發現,頁面對應的狀態碼是200,且地址欄的url并不會發生改變,仍然是source.aspx!這是因為Server.Transfer是完全在服務器端進行跳轉的。所以一種很流行但我覺得不那么正確的說法就是:應當使用Server.Transfer()而不是Response.Redirect()來提高性能。因為在得到Server.Transfer()性能提升的同時,你應該權衡:性能的提高,和由此產生的代價。很難直接給出一個答案,這需要依靠具體的情景來做判斷。

但我傾向于盡量不使用Server.Transfer(),因為:1. 性能提升不大,節約的其實就是報頭信息的往返;2. 清晰的URL無論對于終端用戶,還是開發調試,都有很重要的作用。          好了,理解了302,301也就好辦了。302意味著重定向是暫時的,而301則是***的重定向。

就SEO而言,為了延續鏈接價值和排除重復內容 ,我們在以下幾種情況下都可能會用到301: 1. 域名更換; 2. 多個域名間映射;如www.freeflying.com和www.freeflying.cn,兩個域名其實指向的是同一個網站,這就會造成大量的重復內容,對網站的排名不利。 3. 清除默認索引頁的重復問題:比如我們輸入www.freeflying.com/article/時,如果在IIS里進行了設定,將指向www.freeflying.com/article/Default.aspx 4. 其他的“不同域名相同內容”的重復問題,典型的就是URL重寫后,www.freeflying.com/article/321.html和www.freeflying.com/article.aspx?id=321指向的其實都是同一個網頁內容。 對于404,最直觀的理解就是頁面不存在。如果網站是純靜態的,這很好理解;但當網站做成動態之后,如www.freeflying.com/article/321.html(映射為www.freeflying.com/article.aspx?id=321),雖然id=321的文章已經被刪除了,或者根本不存在,但article.aspx這個頁面始終是存在的,所以HTTP報頭的狀態碼不會是404,而是200,表示請求成功。我們假設一個網站有id=321/342/6739……的文章都被刪除了,但蜘蛛并不知道,它仍然會進行抓取,結果它發現,這些不同的URL對應的居然全是同一個頁面。它就會將其當做重復頁面進行處理。 500意味著程序內部出現異常,比如3/0,代碼如下:  

  1. protected void Button1_Click(object sender, EventArgs e)  
  2. {  
  3.     int i, j;  
  4.     i = 8;  
  5.     j = 0;  
  6.     this.Label1.Text = (i / j).ToString();  
如果搜索引擎接到一個500的狀態碼時,搜索引擎會理解程序只是出現了暫時性的錯誤,它會在之后繼續抓取,查看問題是否已經解決,這并不會給網站帶來太大的問題——只要你能夠盡快恢復。但是,Asp.net自帶的個custom error的web.config配置,會讓我們在不經意間“失誤”。理由和上面講到的404變200類似,當轉向自定義的error.aspx之后,蜘蛛得到的是成功鏈接error.aspx的200代碼,所以蜘蛛會以為報錯的originpage.aspx正常的顯示內容就是error.aspx的內容。不同url參數的originpage.aspx會被蜘蛛認為是不同的url,所以蜘蛛會認為這些所有的url都重復了——后果是很嚴重的。

好了,認識到問題的嚴重性之后,我們來看解決問題的辦法,太簡單了,呵呵

  1. protected void Page_Load(object sender, EventArgs e)  
  2. {  
  3.     //如果你希望搜索引擎知道這個url將不再使用  
  4.     Response.StatusCode = 404;  
  5.  
  6.     //如果你希望告訴搜索引擎這個url只是出現了暫時的故障  
  7.     Response.StatusCode = 500;  
  8.  
  9.     //如果你想***重定向該頁面  
  10.     Response.StatusCode = 301;  
  11.     Response.RedirectLocation = @"\website1\target.aspx";  

原文標題:ASP.NET的SEO:HTTP報頭狀態碼---內容重定向

鏈接:http://www.cnblogs.com/freeflying/archive/2010/02/24/1672308.html

【編輯推薦】

  1. ASP.NET 4中的SEO改進
  2. ASP.NET中的cookieless屬性
  3. 關于靜態頁和SEO的看法
  4. 專家暢談ASP.NET與PHP的未來
  5. ASP.NET MVC 2 RC 2發布 即將支持VS2010
責任編輯:彭凡 來源: 博客園
相關推薦

2009-07-28 15:29:03

實現HTTP請求ASP.NET

2010-01-08 11:04:06

ASP.NET 4SEO

2009-07-23 16:20:48

HTTP協議ASP.NET

2009-07-20 17:21:43

Session狀態ASP.NET

2012-04-23 15:10:18

ASP.NET

2010-05-20 08:50:45

UrlRoutingASP.NET 4.0

2009-07-28 16:03:23

ASP.NET狀態服務

2009-07-28 11:09:02

ASP.NET狀態類型

2009-08-05 14:19:12

ASP.NET輸出EX

2009-08-05 17:39:13

ASP.NET常用狀態

2011-04-13 16:35:47

HTTPASP.NET

2009-07-24 10:41:00

ASP.NET Ses

2025-01-15 00:01:00

開發應用界面

2009-08-03 13:12:34

ASP.NET編程模型

2009-08-03 12:40:46

ASP.NET編程模型

2009-08-05 13:50:23

ASP.NET狀態管理

2009-07-20 14:32:08

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 激情黄色在线观看 | 日韩欧美在线观看视频 | 国产精品激情 | 亚洲精品乱码久久久久久按摩观 | 中文字幕一区二区三区四区五区 | 自拍偷拍精品 | 日批免费观看 | 99久热在线精品视频观看 | 亚洲色图在线观看 | 久久婷婷国产麻豆91 | 色网站在线 | 九九九精品视频 | 中文字幕在线三区 | 成年人视频在线免费观看 | 拍拍无遮挡人做人爱视频免费观看 | 欧美一级淫片免费视频黄 | 久久亚洲一区二区三区四区 | 黄色一级毛片 | 精品一区国产 | 在线伊人网 | 久久伊人久久 | 日韩成人影院 | 久久躁日日躁aaaaxxxx | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 91精品国产综合久久婷婷香蕉 | 国产视频一区二区 | 国产精品视频二区三区 | 91麻豆产精品久久久久久 | 性一交一乱一透一a级 | 在线免费观看黄视频 | 牛牛热在线视频 | av黄色在线观看 | 日本国产高清 | 中文字幕精品一区二区三区精品 | 在线免费观看a级片 | 91精品国产91久久久久久三级 | 欧美在线网站 | 国产一区二区三区四区hd | 婷婷不卡| 夜夜操天天艹 | 亚洲福利一区二区 |