当前位置:编程学习 > C#/ASP.NET >>

asp.net中伪静态的代码

首先声明,这是写在global。asax全局应用程序类中  

代码如下:

/// <summary>
    /// 请求时访问
    /// </summary> 
    /// <param name="sender"></param>
    /// <param name="e"></param>
   void Application_BeginRequest(object sender, EventArgs e)
   {
       string cssPath = "/WebUI/css/";
       string imgPath = "/WebUI/images/";
       string jsPaht = "/WebUI/js/";
       string swfPaht = "/WebUI/flash/";
       //得到请求URL
       string oldUrl = HttpContext.Current.Request.RawUrl;
       string 后缀 = oldUrl.Substring(oldUrl.LastIndexOf(".") + 1); //得到后缀
       if (后缀 == "aspx")
       {
           //重写Urli 
           this.Context.RewritePath(oldUrl);
       }
       else if (后缀 == "html")
       {
           oldUrl = oldUrl.Replace("html", "aspx");
           this.Context.RewritePath(oldUrl);
       }
        else if (后缀 == "htm")
       {
           //得到上级目录
           string shangji = oldUrl.Remove(oldUrl.LastIndexOf('/'));
           
           string 页面 = shangji.Substring(shangji.LastIndexOf('/') + 1, shangji.Length - shangji.LastIndexOf('/') - 1);
          string 整体参数 = oldUrl.Substring((oldUrl.LastIndexOf("/") + 1), oldUrl.LastIndexOf(".") - (oldUrl.LastIndexOf("/") + 1));
           string[] 参数集合 = 整体参数.Split('_');
           StringBuilder 参数列 = new StringBuilder();
          参数列.Append("?");
           foreach (string 参数 in 参数集合)
            {
               string[] 拆分 = 参数.Split('-');
               参数列.Append(拆分[0] + "=" + 拆分[1]);
               参数列.Append("&");
           }
           参数列.Remove(参数列.Length - 1, 1);
           //重写Url
           this.Context.RewritePath(shangji + ".aspx" + 参数列);


       }
       else
       {
           string 名称 = oldUrl.Substring(oldUrl.LastIndexOf("/") + 1); //得到名称
          if (名称.IndexOf(".css") > 0)
            {
               string 路径 = oldUrl.Substring(oldUrl.IndexOf("/css/") + "/css/".Length);
               this.Context.RewritePath(cssPath + 路径);
           }
           if (名称.IndexOf(".js") > 0)
           {
               string 路径 = oldUrl.Substring(oldUrl.IndexOf("/js/") + "/js/".Length);
               this.Context.RewritePath(jsPaht + 路径);
           }
           if (名称.IndexOf(".jpg") > 0 || 名称.IndexOf(".gif") > 0 || 名称.IndexOf(".jpeg") > 0 || 名称.IndexOf(".png") > 0)
          {
               string 路径 = oldUrl.Substring(oldUrl.IndexOf("/images/") + "/images/".Length);
               this.Context.RewritePath(imgPath + 路径);
           }
           if (名称.IndexOf(".swf") > 0)
           {
               string 路径 = oldUrl.Substring(oldUrl.IndexOf("/flash/") + "/flash/".Length);
               this.Context.RewritePath(swfPaht + 路径);
           }
     }
   }  --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分   --------------------编程问答-------------------- 哦,楼主习惯用中文变量名呀? --------------------编程问答-------------------- 不是,是因为怕看不懂,特意用中文变量声明的 --------------------编程问答-------------------- --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 什么问题,Context.RewritePath --------------------编程问答-------------------- 用微软那个 伪静态 组建比较好实现。。 --------------------编程问答--------------------
引用 4 楼 cfesc9 的回复:
哦,楼主习惯用中文变量名呀?


--------------------编程问答-------------------- 用组件我不是很会写那个正则表达式 --------------------编程问答-------------------- 不错。。。现在伪静态是个趋势啊 --------------------编程问答-------------------- 直接上传个案例aspx的,看看就好 --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,