Corona中文站

强大、易学的跨平台(iOS/Android)开发框架。QQ群1:74390406(满) 群2:221929599

导航

ASP.NET使用Global.asax轻松实现URL重写
在ASP.NET中实现URLRewrite有很多方法,今天介绍比较简单的一种,就是利用Global.asax来实现的。
很简单,在项目中新建一个全局应用程序类,即Global.asax,如下图:

在Global.asax文件中添加如下代码:
void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext context = HttpContext.Current;
string url = context.Request.Path;
int i = 0;
if (url.Equals("/")) {return;}
//.html做一个特殊处理
if (url.EndsWith(".html"))
{
i = url.IndexOf("/");
if (i >= 0)
{
string v = url.Substring(i + 1, url.Length - i - 1);
v = v.Replace("/", "").Replace(".html", "");
context.RewritePath("~/url.aspx?wd=" + Server.UrlEncode(v));
}
}
}

需要注意的是,默认情况下访问HTML文件及无扩展名的页面,IIS是不会让ASP.NET去处理的(会直接读取返回),也就是说上面的代码只有当用户访问不存在的ASP.NET文件时(如不存在的aspx文件)才会执行。导致的结果是根本达不到html页面重写的作用。
做法是在IIS里面重写做一些文件映射即可,如下图:


可执行文件选择C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
“确认文件是否存在”一定不能选
<< 用Corona编译并提交App Store时应注意的问题在Corona中使用XML文件 >>

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

Powered By Z-Blog 1.8 Walle Build 100427 Copyright 2011-2015 BuildApp.Net. All Rights Reserved.