public static void RewritePaths() { System.Web.HttpContext context = System.Web.HttpContext.Current; string nodePath = String.Empty; string p = context.Request.Path; string fe = (System.Configuration.ConfigurationSettings.AppSettings["virtualFileExtension"] != null) ? System.Configuration.ConfigurationSettings.AppSettings["virtualFileExtension"] : ".aspx"; string pageHandler = (System.Configuration.ConfigurationSettings.AppSettings["pageHandler"] != null) ? System.Configuration.ConfigurationSettings.AppSettings["pageHandler"] : "pages.aspx"; string adminDirectory = (System.Configuration.ConfigurationSettings.AppSettings["adminDirectory"] != null) ? System.Configuration.ConfigurationSettings.AppSettings["adminDirectory"] : "admin"; string virtualDir = (System.Configuration.ConfigurationSettings.AppSettings["virtualDirName"] != null) ? System.Configuration.ConfigurationSettings.AppSettings["virtualDirName"] : ""; if (p.IndexOf(fe) > -1 && p.IndexOf(adminDirectory) < 0) { // convert our querystringed node-path into a more friendly version (minus virtual dir and escapes) if (virtualDir.Length > 0) { nodePath = p.ToLower().Substring(1, p.Length - 1).Replace(virtualDir, "").Replace(fe, "").Replace("/", "*"); } else { nodePath = p.ToLower().Substring(1, p.Length - 1).Replace(fe, "").Replace("/", "*"); } context.RewritePath("~/" + pageHandler + "?" + nodePath); context.Items.Add("currentNode", getCurrentNode(nodePath)); } }
public void HandleRequest(System.Web.HttpContext context, params string[] args) { context.RewritePath("~/archive" + (args.Length > 0 ? "/" : "") + args.Implode("/"), false); }