-->
注釋掉 條目,以使用 http 模組執行重寫;注釋掉 條目,以使用 http 處理程式執行重寫。
除了指定使用 http 模組還是 http 處理程式執行重寫外,web.config 檔案還包含重寫規則:重寫規則由兩個字串組成:要在被請求的 url 中查詢的模式;要替換此模式的字串(如果找到)。在 web.config 檔案中,此資訊是使用以下語法表達的:
程式**:
要查詢的模式
要用來替換模式的字串
要查詢的模式
要用來替換模式的字串
...每個重寫規則均由 元素表達。要搜尋的模式由 元素指定,而要替換所找到的模式的字串將在 元素中輸入。這些重寫規則將從頭到尾進行計算。如果發現與某個規則匹配,url 將被重寫,並且對重寫規則的搜尋將會終止。
在 元素中指定模式時,請注意,要使用正規表示式來執行匹配和字串替換。(稍後,我們將介紹乙個真實的示例,說明如何使用正規表示式來搜尋模式。)由於模式是正規表示式,應確保轉義正規表示式中的任何保留字元。(一些正規表示式保留字元包括:.、?、^、$ 及其他。可以通過在前面加反斜槓(如 /.)對這些字元進行轉義,以匹配文字句點。)
假設我們已建立了名為 listproductsbycategory.aspx 的 asp.net 網頁,該網頁在查詢字串中接受類別 id 值,並顯示屬於該類的所有產品。因此,要檢視我們銷售的飲料的使用者可以訪問 listproductsbycategory.aspx?categoryid=1,而那些要檢視奶製品的使用者可以訪問 listproductsbycategory.aspx?categoryid=4。此外,還假設我們有乙個名為 listcategories.aspx 的頁面,該頁面列出了待售的所有產品類別。
很顯然,這是乙個 url 重寫事例,因為提供給使用者的 url 沒有為使用者帶來任何意義,也沒有為他們提供任何「可刪節性」。因此,讓我們使用 url 重寫,以便在使用者訪問 /products/beverages.aspx 時,他們的 url 將被重寫為 listproductsbycategory.aspx?categoryid=1。我們可以在 web.config 檔案中使用以下 url 重寫規則來實現此功能。
程式**:
~/products/beverages/.aspx
~/listproductsbycategory.aspx?categoryid=1
~/showblogcontent.aspx?year=$1&month=$2&day=$3
~/(/d)/(/d)/default/.aspx
~/(/d)/default/.aspx
~/showblogcontent.aspx?year=$1
這些重寫規則表明了正規表示式的功能。在第乙個規則中,我們使用模式 (/d)/(/d)/(/d)/.aspx 查詢 url。在簡明英語中,它對應了這樣乙個字串:首先是四個數字,後跟乙個斜槓,然後是兩個數字,後跟乙個斜槓,然後再跟兩個數字,最後是乙個 .aspx。每個數字組周圍的括號非常重要,通過它可以在相應的 屬性中引用這些括號內的匹配字元。 特別是,我們可以針對第
一、第二和第三個括號組分別使用 $1、$2 和 $3 引用回括號內的匹配組。
注意:由於 web.config 檔案採用 xml 格式,但是必須對元素文字部分中的字元(如 &、< 和 >)進行轉義。在第乙個規則的 元素中,& 被轉義為 &。在第二個規則的 中使用了另外一種技術(使用 元素),無需對內部的內容進行轉義。可以使用兩種方法中的任何一種,並且都會得到相同的結果。
大家看看是不是很方便,能過url重寫使url變的可讀性強,隱藏了真實的url。
URL重寫技術
什麼是url重寫?比如原來要訪問乙個網頁使用的 是 http index.php,但是我們可以使用url重寫技術,將原來的url位址變成http index.html,之後可以通過訪問http index.html達到原來的效果,這可以通過apache的mod rewrite模組來實現 1 要進行u...
URL重寫 Cookie Session技術
1 url重寫 url可以在後面附加引數,和伺服器的請求一起傳送,伺服器根據相應的引數來判斷是否為同乙個客戶端傳送的請求,一般可以直接使用http會話api執行url重寫,會自動附加相應的sessionid,該技術主要使用場景是客戶端的瀏覽器禁用cookie導致session無法使用的情況。2 co...
慎用url重寫
為了使 url位址更加友好 當然可能有別的原因 很多站點使用了 url重寫,如http www.cnblogs.com life,在asp.net中通常要處理這樣的 url重寫,必須在iis中將 對映到aspnet isapi.dll c windows microsoft.net framewor...