转载地址:http://dev.mjxy.cn/a-How-to-customize-the-IHttpModule.aspx
使用自定义的 IHttpModule 方法可以实现自己想要的url重写功能。
1. 自定义类 HttpModule 继承 IHttpModule
实现接口的Init方法,在方法中处理BeginRequest事件。
public class HttpModule : IHttpModule
{
#region IHttpModule 成é员±
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, EventArgs e)
{
string url = HttpContext.Current.Request.Path.ToLower();
//处理数字url
string reg = string.Format(@".*/{0}(?<id>[0-9]*)\.aspx$", KCore.Common.Global.Pre);
//正则匹配
Match match = Regex.Match(url, reg, RegexOptions.IgnoreCase);
if (!VerifyUrl(url) && match.Success && match.Groups.Count > 0)
{
string path = "index.aspx?id=" + match.Groups["id"].Value;
Debug.WriteLine(path);
HttpContext.Current.RewritePath(path);
return;
}
}
#endregion
}
2. 修改配置文件
type=Namespace.Class,AssemblyFile
<add name="HttpModule" type="Digitwest_HttpModule.HttpModule,Digitwest_HttpModule"/>