详细参见: http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspx
最简单的实现,就是在 Global.asax.cs中 Application_BeginRequest 或者是 Application_AuthenticateRequest 事件处理中,对请求的URL进行判断并进行重写:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
HttpApplication app = (HttpApplication) sender;
string requestedPath = app.Request.Path;
string lookFor = @"^/webapptest/urlrewritetest/department/(/w+)/.aspx$";
string sendTo = "/webapptest/urlrewritetest/webform2.aspx?dept=$1";
Regex re = new Regex(lookFor, RegexOptions.IgnoreCase);
if (re.IsMatch(requestedPath))
{
string sendToUrl = re.Replace(requestedPath, sendTo);
app.Context.RewritePath(sendToUrl);
}
}
重写主要利用了 HttpContext.RewritePath 方法。
执行效果是将:
http://localhost/WebAppTest/URLRewriteTest/department/Finance.aspx
重写为:
http://localhost/WebAppTest/URLRewriteTest/WebForm2.aspx?Dept=Marketing
<!--EndFragment-->
本文介绍了一种在ASP.NET应用程序中实现URL重写的简单方法。通过在Global.asax.cs文件中的Application_BeginRequest事件处理程序内使用正则表达式匹配和替换请求路径,可以灵活地更改客户端看到的URL,而不会改变实际的页面地址。
908

被折叠的 条评论
为什么被折叠?



