httpModel 页面拦截
我的拦截类:
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text.RegularExpressions;
namespace myhand
{
public class hander:IHttpModule
{
#region IHttpModule 成员
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
HttpResponse response = context.Response;
string path = context.Request.Path;
string file = System.IO.Path.GetFileName(path);
string url = context.Request.Url.ToString(); //得到当前请求的假URL
int lastindex = url.LastIndexOf('/'); //从最后一个/取索引
string filename = url.Substring(lastindex);//得到文件名
// if (File.Exists(Server.MapPath(fileUrl)))
Regex reg = new Regex(@"(\d+)\.aspx");
if (reg.IsMatch(filename))
context.RewritePath("test_EN.aspx");
else
context.RewritePath(filename);
}
#endregion
}
}
web Config中的配置
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="hander" type="myhand.hander, myhand"/>
</httpModules>