asp.net地址映射 的界說是用戶訪謁 的虛擬地址 映射的現實文件,虛擬地址可能是靜態頁面。如理:在訪謁http://fuzhou.naoqiu.com/bus頁面, 其實訪謁的是/bus.aspx頁面。
asp.net地址映射是經由過程 HttpModule請求事理來完成工作。
httpModule事理是什么?
一 個HTTP請求在HttpModule容器的傳遞過程中,會在某一時刻(ResolveRequestCache事務)將這個HTTP請求傳遞給 HttpHandler容器。在這個事務之后,HttpModule容器會成立一個HttpHandler的生齒實例,可是此時并沒有將HTTP請求節制 權交出,而是繼續觸發AcquireRequestState事務以及PreRequestHandlerExcute事務。在 PreRequestHandlerExcute事務之后,HttpModule窗口就會將節制權且則交給HttpHandler容器,以便進行真正的 HTTP請求措置工作。
而在HttpHandler容器內部會執行ProcessRequest體例來措置HTTP請求。在容器 HttpHandler措置完畢整個HTTP請求之后,會將節制權交還給HttpModule,HttpModule則會繼續對措置完畢的HTTP請求信 息流進行層層的轉交動作,直到返回到客戶端為止。

借用博友圖片
體味完事理后,我來完成一個 簡單的地址映射,代碼如下:
首先先完成地址映射基類:
///<summary>
/// 地址重寫 /// </summary>
public abstract class BaseModuleRewriter: IHttpModule
{
/// <summary>
/// 初始化挪用 /// </summary>
/// <param name="app"></param>
public virtual void Init(HttpApplication app) {
app.BeginRequest += new EventHandler(app_BeginRequest);
}
public virtual void Dispose() { }
/// <summary>
/// 請求起頭 /// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected virtual void app_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = sender as HttpApplication;
Rewrite(app);
}
/// <summary>
/// 操作的抽象體例 /// </summary>
/// <param name="app"></param>
protected abstract void Rewrite(HttpApplication app);
}
擔任基類,完成需要地址映射操作:
protected override void Rewrite(HttpApplication app)
{
HttpContext context = app.Context;
HttpRequest request = app.Request;
string part = Regex.Match(request.Url.ToString(), @"(?<=http://).*").Value.ToLower().Trim('/');
if (part.IndexOf("/") == -1)
{
part = Regex.Match(part, @"^w+").Value;
switch (part)
{
case "bus": context.RewritePath("/bus.aspx"); break;
case "www":
case "naoqiu": context.RewritePath("/Default.aspx"); break;
default: context.RewritePath("/Index_City.aspx"); break;
}
}
}
那么我們是否還差些什么? 是的,還差個設置裝備擺設文件的設置裝備擺設。需要改削web.config文件幾處處所,代碼如:
推薦閱讀 網站title的寫作是做seo優化工作中很主要的一步,也是一名seoer的根基功。可是筆者在實踐中發現有良多網站的title其實寫的都是有問題的,甚置突皓年夜業多年的seoer都還在犯錯誤。本文中,筆者首先列舉網站title寫法>>>詳細閱讀 本文標題:asp.net地址映射——偽靜態 地址:http://www.xglongwei.com/a/34/20120422/53492.html