asp.net地址映射——伪静态

作者:Lgo100 来源:未知 2012-04-22 11:09:15 阅读 我要评论 直达商品

 

  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写法

网站title的写作是做seo优化工作中很主要的一步,也是一名seoer的根基功。可是笔者在实践中发现有良多网站的title其实写的都是有问题的,甚置突皓年夜业多年的seoer都还在犯错误。本文中,笔者首先列举网站title写法>>>详细阅读


本文标题:asp.net地址映射——伪静态

地址:http://www.lgo100.com/a/34/20120422/53492.html

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
我的评论: 人参与评论
验证码: 匿名回答
网友评论(点击查看更多条评论)
友情提示: 登录后发表评论,可以直接从评论中的用户名进入您的个人空间,让更多网友认识您。
自媒体专栏

评论

热度