/// <summary> /// 页面请求事件处理 /// </summary> /// <param name="sender">事件的源</param> /// <param name="e">包含事件数据的 EventArgs</param> private void ReUrl_BeginRequest(object sender, EventArgs e) { HttpContext context = ((HttpApplication)sender).Context; string requestPath = context.Request.Path; //获得当前页面,包含目录 string requestPage = requestPath.Substring(requestPath.LastIndexOf("/")); //获得当前页面,不包含目录 Hoto.Model.siteconfig siteConfig = new Hoto.BLL.siteconfig().loadConfig(HotoUtils.GetXmlMapPath(HotoKeys.FILE_SITE_XML_CONFING)); //获得站点配置信息 bool isRewritePath = IsUrlRewrite(siteConfig.webpath, requestPath); //排除不需要URL重写的目录 switch (siteConfig.staticstatus) { case 0: //关闭重写 if (isRewritePath && IsAspxFile(requestPath)) { context.RewritePath(siteConfig.webpath + HotoKeys.DIRECTORY_REWRITE_ASPX + "/" + requestPage); } break; case 1: //伪URL重写 if (isRewritePath) { RewriteUrl(context, siteConfig.webpath, requestPath, requestPage); } break; case 2: //全静态 if (requestPath.ToLower().Equals("/index.aspx")) { context.RewritePath(siteConfig.webpath + HotoKeys.DIRECTORY_REWRITE_HTML + "/index." + siteConfig.staticextension); } break; } }