url 重寫是擷取傳入 web 請求並自動將請求重定向到其他 url 的過程。比如瀏覽器發來請求 hostname/101.aspx
,伺服器自動將這個請求中定向為http://hostname/list.aspx ?id=101。
url重寫的優點在於:
l
縮短url,隱藏實際路徑提高安全性
l
易於使用者記憶和鍵入。
l
易於被搜尋引擎收錄
二 實現url重寫的基本方法
1.
~/d(/d+)/.aspx
~/default.aspx?id=$1
其中用於指定配置節"rewriterconfig"的處理程式類的名稱為」urlrewriter.config.rewriterconfigserializersectionhandler」,該類存在於bin目錄下的urlrewriter .dll檔案中
配置節"rewriterconfig"內容如下
~/d(/d+)/.aspx
~/default.aspx?id=$1
其中關鍵的是這兩句
~/d(/d+)/.aspx
~/default.aspx?id=$1
~/d(/d+)/.aspx表示,使用者輸入的url,d(/d+)/.aspx是url中檔名匹配的正規表示式(此處為字母d開頭,後面跟乙個或多個數字,並以.aspx結尾。使用者也可根據自己的需要自行設定)。
~/default.aspx?id=$1,表示當伺服器接收到符合上面條件的請求後如何重寫url。此處表示訪問de****tl.aspx並傳入引數id,其值$1將用使用者請求的檔名中的第乙個數字來表示。
例如使用者輸入 hostname/d11.aspx,伺服器會把他重寫為http://hostname/default.aspx?id=11。換句話說使用者輸入http://hostname/d11.aspx,實際訪問的是http://hostname/default.aspx?id=11
。這樣就起到了隱藏真實檔名,並便於使用者記憶的作用。
2.處理回發
在重寫後的url裡如果產生回發,例如有乙個按鈕,又呼叫了該被重寫的aspx,使用者瀏覽器中將會顯示該aspx檔案實際的位址,也就是http://hostname/default.aspx?id=11。但從使用者的角度考慮,如 果單擊按鈕時突然看到 url 更改會使他們感到不安。因此必須解決這個問題。
解決方法有二:
(1)自己定義乙個actionlessform類,在aspx中不再使用系統提供的form 標記
namespace actionlessform }}
建立此類並對其進行編譯之後,要在 asp.net web 應用程式中使用它,應首先將其新增到 web 應用程式的 references 資料夾中。然後,要 使用它來代替 htmlform 類,做法是在 asp.net 網頁的頂部新增以下內容:
<%@ register tagprefix="skm" namespace="actionlessform"
assembly="actionlessform" %>
然後,將標記替換為:
(2)以上的是繼承個form,第二種方法就是繼承page,這樣你不需要在aspx頁中改任何東西。
**:using system;
using system.io;
using system.web;
using system.web.ui;
namespace url
protected override void render(htmltextwriter writer)
else
base.render(writer);
}}internal class formfixerhtml32textwriter : system.web.ui.html32textwriter
public override void writeattribute(string name, string value, bool encode)
base.writeattribute(name, value, encode);}}
internal class formfixerhtmltextwriter : system.web.ui.htmltextwriter
public override void writeattribute(string name, string value, bool encode)
base.writeattribute(name, value, encode);
}}}把這個檔案編譯成dll,並在你的專案中引用它。
然後把專案中的所有aspx檔案對應的cs檔案中的繼承page類的**改寫為繼承olpage。
例如public class webform1:page
改寫為public class webform1:url.olpage
這樣就解決回發問題。
全文完
什麼是URI,什麼是URL
1.什麼是uri 注 大多數讀者可能熟悉 url 而不是uri。url是rui命名機制的乙個子集。片段標誌符 有的uri指向乙個資源的內部。這種uri以 結束,並跟著乙個anchor標誌 符 稱為片段標誌符 例如,下面是乙個指向section 2的uri 相對uri 相對uri 不包含任何命名規範資...
什麼是絕對URL 相對URL
url的中文意思是統一資源定位符。作用就是為了讓我們定位網際網路上的各種資源。例如我們經常瀏覽 看到的每乙個網頁或 都具有唯一的url,即通過url位址可以成功的訪問到。且這些url位址都是唯一的。如果想在網上想訪問某個頁面的時候,可以直接在瀏覽器中輸入url位址,例如你想中的什麼是css,就可以在...
什麼是絕對URL 相對URL
url的中文意思是統一資源定位符。作用就是為了讓我們定位網際網路上的各種資源。例如我們經常瀏覽 看到的每乙個網頁或 都具有唯一的url,即通過url位址可以成功的訪問到。且這些url位址都是唯一的。如果想在網上想訪問某個頁面的時候,可以直接在瀏覽器中輸入url位址,例如你想中的什麼是css,就可以在...