ASP.NET高效URL重写
2011-08-26 10:04
363 查看
public class UrlRouteModule : IHttpModule { private static string URL_FLAG = "/q/"; //Url中区别路径和参数的分隔符 private static string URL_SUFFIX = ".aspx"; //对哪种后缀的Url实施Rewrite public void Init(HttpApplication context) { context.BeginRequest += new EventHandler(context_BeginRequest); } private void context_BeginRequest(object sender, EventArgs e) { HttpApplication app = sender as HttpApplication; if (app == null) return; string currentUrl = app.Context.Request.RawUrl; if (currentUrl.EndsWith(URL_SUFFIX, StringComparison.OrdinalIgnoreCase) == false) //后缀不符合的跳过 return; int p = currentUrl.IndexOf(URL_FLAG, StringComparison.OrdinalIgnoreCase); //无参的也跳过 if (p == -1) return; currentUrl = currentUrl.Substring(0, currentUrl.Length - URL_SUFFIX.Length); //去除后缀 string url = string.Format("{0}.aspx", currentUrl.Substring(0, p)); string query = FormmatUrlToQuery(currentUrl.Substring(p + URL_FLAG.Length)); app.Context.RewritePath(url, string.Empty, query); } private string FormmatUrlToQuery(string url) { int j = 0; //计数器 int len = url.Length; char[] chars = new char[len]; for (int i = 0; i < len; i++) { if (url[i] != '/') chars[i] = url[i]; else { if (++j % 2 == 1) chars[i] = '='; else chars[i] = '&'; } } return new string(chars); } public void Dispose() { } }
相关文章推荐
- asp.net的URL重写
- 在 ASP.NET 中执行 URL 重写
- ASP.NET 2.0 中的URL 重写技术
- asp.net用url重写URLReWriter实现任意二级域名[转]
- asp.net URL 重写 附IIS配置+源码
- 转载MSDN 在ASP.NET 中执行 URL 重写
- ASP.NET URL Rewrite. URL重写(静态页和伪静态共存)
- 在 ASP.NET 中执行 URL 重写
- asp.net用url重写URLReWriter实现任意二级域名
- asp.net下用url重写URLReWriter实现任意二级域名的方法第1/2页
- asp.net用url重写URLReWriter实现任意二级域名
- 在 ASP.NET 中执行 URL 重写
- Intelligencia.UrlRewriter.dll aspx重写为html实例(asp.net 2.0)
- 一个完整的 ASP.NET 2.0 URL 重写方案
- 在ASP.NET中重写URL
- 在ASP.NET中重写URL
- 用微软组件URLRewriter在Windows Server 2003下实现的在ASP.NET下重写URL
- 在 ASP.NET 中执行 URL 重写
- ASP.NET 中执行 URL 重写
- asp.net URL重写(URLRewriter) 之简化版 。一分钟学会URL重写