在ASP.Net2.0中實現UrlReWriter技術

來源:互聯網
上載者:User
關注UrlReWriter技術很久了,首先就是在部落格園裡接觸到的,之後在其他部落格網站也看到了相應的應用。 UrlReWriter,簡單的例子就是譬如將Article.Aspx?ArticleID=20類似的地址轉成一個虛擬位址,比如Article20.htm或者Article/20.htm,這樣瀏覽器讀Article20.htm或Article/20.htm這個地址就可以將它轉向真實的地址Article.Aspx?ArticleID=20。 這樣做的好處是便於搜尋引擎搜尋到這篇文章的內容,也有利於使用者理解網頁地址便於記憶,也安全,隱藏了真真實位址。 之前就看到了微軟MSDN裡關於UrlReWriter的介紹,不過語言晦澀,生硬難懂,以至於後來放棄了對它的研究。後來也看過別人寫的一些總結,瞭解到可以用一個DLL組件引用,不用再自己寫程式去實現UrlReWriter了。今天突然想用在首頁大巴裡面,於是再次拿起來,發現用組件實現起來非常簡單。 組件我瞭解到的有兩個,一個是微軟的UrlReWriter.DLL,一個是 老外寫的開源,專提供Asp.Net2.0的UrlRewritingNet,正合我意,呵呵。使用方法都是網上搜的,別人寫的http://www.hzpal.com/Discuss/DotNet/459.aspx(其實是部落格園裡的人寫的,只不過今天部落格園打不開)。我總結一下。 1.將UrlRewritingNet.UrlRewriter.dll拷到bin目錄下2.在web.config裡進行相關的配置3.拷貝urlrewritingnet.xsd檔案(這一步我沒做,因為別人也沒寫拷到哪裡,不過似乎沒影響,有問題再說,呵呵)4.定義Url重寫規則(就是你Aspx檔案中的連結改成重寫後的地址,我的理解是這個意思) 管它的呢,反正能實現就對頭。解釋:
<add name="Rewrite"  virtualUrl="^~/(.*)/Detail(.*).htm"  rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Default.aspx?type=$1&amp;id=$2" ignoreCase="true" /> 裡(.*)表示參數,也就是重寫後的地址格式,比如Detail(.*).aspx就可以將Detail1.Aspx轉成真真實位址。$1表示第1個參數。這裡參數是遵循規則式寫法的,比如(.[0-9]*)表示數字。此外還要在IIS\你的網站\屬性\主目錄\配置\映謝 加入一個和aspx 頁面的配置相同的副檔名項htm。注意“確認檔案是否存在”不要勾選,否則會出現找不到檔案。  最後一步是將Aspx頁中輸出的地址那裡改成相應的重寫地址,比如<a href=Detail<%# DataBinder.Eval(Container,"DataItem.ID")%>.htm> 我經過以上幾步就可以實現UrlReWriter了。
不過據說放了DATAGRID,有分頁的,你點到下一頁就發現,暈倒,又出問題了。不過俺沒碰到。
如果你碰到的話,可以參考這裡: http://www.dowebs.net/forums/index.php?showtopic=345,就是建立自己的HtmlForm。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.