コード例 #1
0
        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));
            }
        }
コード例 #2
0
 public void HandleRequest(System.Web.HttpContext context, params string[] args)
 {
     context.RewritePath("~/archive" + (args.Length > 0 ? "/" : "") + args.Implode("/"), false);
 }