澳门新葡亰浅谈URL重写 及 静态化。浅谈URL重写 及 静态化,浅谈url重写静态。

世家吓,欢迎关注自身之个人blog!

浅谈URL重写 及 静态化,浅谈url重写静态

世家吓,欢迎关注自己之个人blog!

1.url再次写,首先自己是先以Application_BeginRequest中捕获url重写了平整

 
protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            string url = Request.AppRelativeCurrentExecutionFilePath; //
            Match match = Regex.Match(url, @"~/BookList2_(\d+)\.aspx");
            if (match.Success)
            {
                int id = Convert.ToInt32(match.Groups[1].Value);
                Context.RewritePath(string.Format("/BookList2.aspx?categoryId={0}", id));
            }

        }

 

盗用了大神写好的少数个UrlRewrite类。。。

勿敢独自享,分享之…

public class UrlRewriter : HtmlTextWriter
    {
        public UrlRewriter(HtmlTextWriter writer)
            : base(writer)
        {
            this.InnerWriter = writer.InnerWriter;
        }

        /// <summary>
        /// 重写基类的WriteAttribute()方法
        /// </summary>
        /// <param name="name">要写的属性的名称</param>
        /// <param name="value">要写的属性的值</param>
        /// <param name="fEncode"></param>
        public override void WriteAttribute(string name, string value, bool fEncode)
        {
            if (name.ToLower() == "action")
            {
                var context = HttpContext.Current;
                if (context.Items["ActionRewrite"] == null)
                {
                    value = context.Request.RawUrl;//原始路径
                    context.Items["ActionRewrite"] = true;//设置标记,已经重写action属性.

                }
            }

            base.WriteAttribute(name, value, fEncode);
        }
    }

 

public class UrlRewriterControlAdapter:ControlAdapter
    {
        protected override void Render(HtmlTextWriter writer)
        {
            base.Render(new UrlRewriter(writer));
        }
    }

 

黏贴至清目录,url重写搞定,原理性的东东,等待自己看明白之后与大家说说
呵呵…. 看哪个先看懂…

接下来,我就算从头了书籍详情页的页面静态化的行事。

2.页面静态化就好整治接触了,就是合接字符串。最后按照一定之存放规则以颇成好的html文件存放即可。

此我下了模版页的施用,注意模板页调用js css img
等公事之时节,记得写绝对路径,不然会报错,因为 相对路径已经查找不至
这些文件了,因为以一定的平整来存放在html页了。

接下来,晚上归反正闲在为是悠闲在探url重写,一看微软出死简短的使用。有个UrlRewrite.dll组件可以轻松做到url重写的工作,于是乎,我不怕心血来潮,开始按博客大牛的方式搞起了。

原先真的要命简单,config里面长规则就是ok了。

然而,当自己点击自己转的静态页的时段,就产生问题了。错误提示….

1.url重新写,首先我是先行在Application_BeginRequest中捕获url重写了平整

并未呢扩大名“.html”注册之扭转提供次。可以于 machine.config 或 web.config 中的 <compilation><buildProviders> 节注册一个。请确保所注册的提供程序有所包含值“Web”或“All”的 BuildProviderAppliesToAttribute 特性。

哄,搞昏我…不知道原理的自己,眼泪掉下来….

后来网上搜了有点方法,都尚未搞定的本身,将代码一一改了回了。。。。

等候再牛B的食指,前来解惑…

http://www.bkjia.com/C\_jc/1202637.htmlwww.bkjia.comtruehttp://www.bkjia.com/C\_jc/1202637.htmlTechArticle浅谈URL重写 及 静态化,浅谈url重写静态
大家好,欢迎关注自我之个人blog!
1.url重复写,首先自己是先期以Application_BeginRequest中抓获url重写了规则…

 
protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            string url = Request.AppRelativeCurrentExecutionFilePath; //
            Match match = Regex.Match(url, @"~/BookList2_(\d+)\.aspx");
            if (match.Success)
            {
                int id = Convert.ToInt32(match.Groups[1].Value);
                Context.RewritePath(string.Format("/BookList2.aspx?categoryId={0}", id));
            }

        }

 

盗用了大神写好的鲜独UrlRewrite类。。。

非敢独自享,分享之…

public class UrlRewriter : HtmlTextWriter
    {
        public UrlRewriter(HtmlTextWriter writer)
            : base(writer)
        {
            this.InnerWriter = writer.InnerWriter;
        }

        /// <summary>
        /// 重写基类的WriteAttribute()方法
        /// </summary>
        /// <param name="name">要写的属性的名称</param>
        /// <param name="value">要写的属性的值</param>
        /// <param name="fEncode"></param>
        public override void WriteAttribute(string name, string value, bool fEncode)
        {
            if (name.ToLower() == "action")
            {
                var context = HttpContext.Current;
                if (context.Items["ActionRewrite"] == null)
                {
                    value = context.Request.RawUrl;//原始路径
                    context.Items["ActionRewrite"] = true;//设置标记,已经重写action属性.

                }
            }

            base.WriteAttribute(name, value, fEncode);
        }
    }

 

public class UrlRewriterControlAdapter:ControlAdapter
    {
        protected override void Render(HtmlTextWriter writer)
        {
            base.Render(new UrlRewriter(writer));
        }
    }

 

黏贴至清目录,url重写搞定,原理性的东东,等待自己看明白之后跟大家说说
呵呵…. 看谁先看懂…

接下来,我就起来了书详情页的页面静态化的办事。

2.页面静态化就好整治触及了,就是拼接字符串。最后以一定之存放规则以老成好的html文件存放即可。

此我下了模版页的使用,注意模板页调用js css img
等公事之上,记得写绝对路径,不然会报错,因为 相对路径已经查找不至
这些文件了,因为以一定的平整来存放在html页了。

然后,晚上回到反正闲在吗是悠闲在探url重写,一看微软产生好粗略的动。有个UrlRewrite.dll组件可以轻松完成url重写的做事,于是乎,我虽心血来潮,开始按照博客大牛的法门将起了。

原真的蛮简短,config里面长规则就是ok了。

可,当自身点击自己别的静态页的时,就来问题了。错误提示….

从没也扩充名“.html”注册的变迁提供次。可以于 machine.config 或 web.config 中的 <compilation><buildProviders> 节注册一个。请确保所报之供次有所包含值“Web”或“All”的 BuildProviderAppliesToAttribute 特性。

哄,搞昏我…不清楚原理的自,眼泪掉下来….

新生网上查找了略微方法,都并未搞定的自身,将代码一一改了回来了。。。。

等候再牛B的口,前来解惑…

 

作者介绍:半路学IT,做开发3年,先下车于相同寒共享单车店,做后台开发!

 

 我起了一个公众号,欢迎各位有志同道合朋友,关注!不期分享工作,和自我得故事!

 

澳门新葡亰 1

相关文章

Leave a Comment.