什麼是url重寫

2021-04-13 01:30:53 字數 2446 閱讀 8166

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,就可以在...