asp.net下通过泛解析和伪静态实现二级域名的实现方法
asp.net下通过泛解析和伪静态实现二级域名的实现方法
发布时间:2016-12-29 来源:查字典编辑
摘要:虽然最后是实现了,但身为程序员的我,却总是感觉利用其他不开源的组件自己总把握不了技术的核心。其实在net中微软已经为我们留下了接口,让我们为...

虽然最后是实现了,但身为程序员的我,却总是感觉利用其他不开源的组件自己总把握不了技术的核心。其实在net中微软已经为我们留下了接口,让我们为所欲为了。

首先我们可以通过一张图大概了解下.net的生命周期。

asp.net下通过泛解析和伪静态实现二级域名的实现方法1

从 上图可以看出来,针对每个不同用户的请求,服务器都会创建一个新的HttpContext实例直到请求结束,服务器销毁这个实例。而 Ihttpcontext是httpcontext对外公开的接口,它包含了2个方法:dispose()和Init(HttpApplication context),我们可以实现Ihttpcontext从而达到httpcontext。

关键代码:

复制代码 代码如下:

HttpApplication app = (HttpApplication)sender;

HttpContext context = app.Context;

string url = context.Request.Url.AbsoluteUri; //完整url

string turl = url.Split('.')[0];

string surl = turl.ToLower().Replace("http://", "");

StringBuilder strb = new StringBuilder();

strb.Append(url);

strb.Append(surl);

app.Context.RewritePath(path, string.Empty, strb.ToString().Split('?')[1]);

在web.config里配置下:

<system.web>里添加如下代码。

<httpModules>

<add type="Common.URLRewriter" name="Common" />

最后设置IIS的时候记得要把IIS的表头设置为空。

运行下你就能实现了

</httpModules>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类