在ASP.NET中重寫URL提高你網站上網頁的搜索相關性

發表于:2008-05-07來源:作者:點擊數: 標簽:網頁重寫相關性NetNET
經常有人請我指導應該如何動態地“重寫”URL,以在他們的ASP.NETweb應用中發布比較干凈的URL端點。這個博客帖子概述了幾個方法,你可以用來在ASP.NET中干凈地映射或重寫URL,以及按照你自己的 需求 組織你的URL的結構。 為什么URL映射和重寫很重要? 下面是
 經常有人請我指導應該如何動態地“重寫”URL,以在他們的ASP.NETweb應用中發布比較干凈的URL端點。這個博客帖子概述了幾個方法,你可以用來在ASP.NET中干凈地映射或重寫URL,以及按照你自己的需求組織你的URL的結構。
  為什么URL映射和重寫很重要?

  下面是開發人員想要對URL有更大的靈活性的最常見的場景:

  1) 處理這樣的情形:你要更改你的web應用中網頁的結構,但你同時也要確保在你移動網頁后,那些被人收藏的老URL不會成為死鏈接。重寫URL允許你透明地將請求轉交到新的網頁地址而不出錯。

  2) 在象Google,Yahoo 和 Live 這樣的搜索引擎中提高你網站上網頁的搜索相關性。具體地來說,URL重寫經常能使你在你網站上網頁的URL里更加容易地嵌入關鍵詞,這么做往往會增加別人點擊你的鏈接的機會。從使用查詢字符串參數到使用完全限定(fully qualified)的URL也能在某些情形下提高你在搜索引擎結果中的優先順序。使用強制referring鏈接使用同樣的大小寫(same case)和URL入口(譬如,使用weblogs.asp.net/scottgu 而不是 weblogs.asp.net/scottgu/default.aspx)的技術也能避免因跨越多個URL而造成的網頁排名(pagerank)的降低(avoid diluting your pagerank across multiple URLs),從而增加你的搜索結果。

  在一個搜索引擎日漸驅動網站訪問量的世界里,在你的網頁排名上稍微得到一些提高就能給你的業務帶來不錯的投資回報(ROI)。逐漸地,這驅使開發人員使用URL重寫以及其他SEO(搜索引擎優化 )技術來優化網站(注,SEO是個步調很快的空間,增加你的搜索相關性的建議月月在演變)。想了解一些關于搜索引擎優化方面好的建議的話,我建議你閱讀一下《SSW Rules to Better Google Rankings (SSW的提高Google排名之要領)》,以及MarketPosition關于《how URLs can affect top search engine ranking (URL會如何影響頂級搜索引擎排名)》的文章。
例程的URL重寫場景

  為這個博客貼子起見,我將假設我們將在一個應用里建造一套電子商務的產品目錄網頁,產品是按種類來組織的(譬如,圖書,錄像,CD,DVD等等)。

  讓我們假定一開始我們有個網頁叫Products.aspx,通過查詢字符串參數接受一個類別名稱,相應地過濾顯示的產品。與這個Products.aspx網頁對應類別的URL看上去象這樣:
http://www.store.com/products.aspx/Books http://www.store.com/products.aspx/DVDs http://www.store.com/products.aspx/CDs
  你會在上面這些URL中注意到的一個東西是,他們不再含有查詢字符串值,取而代之的是,類別參數的值是附加到URL上的,是以 Products.aspx網頁處理器名稱之后的/參數 值的方式出現的。然后,一個自動化的搜索引擎爬蟲(search engine crawler)會把這些URL解釋成三個不同的URL,而不是一個URL帶有三個不同的輸入值 (搜索引擎是不理會文件擴展名的,只把它當作URL中的另一個字符而已)。

  你也許很想知道怎么在ASP.NET中處理這個附加的參數的情形。好消息是,這非常簡單。只要使用Request的PathInfo屬性就可以了,該屬性返回URL中緊隨 products.aspx 后面的那部分內容。所以,對上面這些URL, Request.PathInfo會分別返回 “/Books”, “/DVDs”,和 “/CDs”(萬一你想知道的話, Request的Path 屬性返回“/products.aspx” )。

  然后,你可以輕易地編寫一個函數來獲取產品類別,象這樣(下面這個函數去除前面的斜杠字符,只返回“Books”,“DVDs”,或 “CDs”):
Function GetCategory() As String If (Request.PathInfo.Length = 0) Then Return "" Else Return Request.PathInfo.Substring(1) End If End Function
  樣例下載:我建立的一個展示這個技術的樣例應用可以在這里下載。這個樣例和這個技術的很好的地方在于,為部署使用這個方法的ASP.NET應用,不需作任何服務器配置改動。在共享主機的環境里,這個技術也行之有效。
方法二:使用HttpModule實現URL重寫

  上述Request.PathInfo技術的替換方法是,利用ASP.NET提供的HttpContext.RewritePath方法。這個方法允許開發人員動態地重寫收到的URL的處理路徑,然后讓ASP.NET使用剛重寫過后的路徑來繼續執行請求。

  譬如,我們可以選擇向大眾呈示下列URL:
http://www.store.com/products/Books.aspx http://www.store.com/products/DVDs.aspx http://www.store.com/products/CDs.aspx

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97