URL映射是ASP.NET 2.0中提供的新特性。URL映射技術(shù)幫助我們將一個(gè)特定URL映射為另一個(gè)URL。為了幫助理解,我們假設(shè)你在站點(diǎn)有一個(gè)叫Homepage.aspx的頁(yè)面來(lái)訪問(wèn)主頁(yè),所有的用戶也都用這個(gè)頁(yè)面來(lái)訪問(wèn)你的主頁(yè)。但由于某些原因,你要將主頁(yè)改為OriginalHome.aspx。此時(shí)使用URL映射讓你可以映射到新頁(yè)面,而不必通知用戶。
如果我們?cè)O(shè)置了URL映射,那么任何用戶在URL欄輸入Homepage.aspx時(shí),調(diào)用的都是OriginalHome.aspx。
深入概念:
讓我們看看如何實(shí)現(xiàn)它。
這可以在configuration部分中System.Web節(jié)點(diǎn)內(nèi)實(shí)現(xiàn)。
語(yǔ)法:
以下為引用的內(nèi)容: <urlMappings enabled="[true false]"> <add url="String" mappedUrl="String"/> </urlMappings> |
如果你想使用URL映射,你必須將enabled屬性設(shè)置為true。每個(gè)add元素都含有一個(gè)原URL和映射URL。
config文件中的元素顯示如下:
以下為引用的內(nèi)容: <urlMappings enabled="true"> <add url="~/ Homepage.aspx" mappedUrl="~/ OriginalHome.aspx"/> </urlMappings> |
一旦我們進(jìn)行了修改或在工程的web.config文件中增加了如上的元素,任何用戶試圖訪問(wèn)Homepage.aspx時(shí),由于URL映射,都將調(diào)用OriginalHome.aspx頁(yè)面。有趣的是在URL欄中仍然僅顯示Homepage.aspx。所以盡管想到內(nèi)部調(diào)用/執(zhí)行了OriginalHome.aspx,用戶在URL欄仍見(jiàn)到Hopepage.aspx。
一些優(yōu)點(diǎn):
1.若你的客戶標(biāo)記了到一個(gè)頁(yè)面的鏈接,但你又得刪除該頁(yè)并在換上其他頁(yè)面,那么使用URL映射你可以解決這個(gè)商業(yè)問(wèn)題而不用讓客戶知道這個(gè)頁(yè)面變化。
2.若有一個(gè)大而復(fù)雜的URL,但不想把它給用戶,那么你可以告知簡(jiǎn)單的URL,而自己將簡(jiǎn)單的URL映射到原先的URL。
3. 用這個(gè)方法可以方便處理菜單控件。最好的例子就是asp.net站點(diǎn)。
4.這里也牽涉到安全(用戶無(wú)法在URL欄看到真實(shí)的頁(yè)面名,這也是一種加密!)。
缺點(diǎn):
1、這個(gè)內(nèi)置的URL重寫(xiě)支持不支持正則表達(dá)式,因而只能用來(lái)實(shí)現(xiàn)一對(duì)一的路徑和頁(yè)面的重寫(xiě)