风言枫语  

利用Global.asax的Application_BeginRequest 实现url 重写 无后缀

<%@ Application Language="C#" %>

<script RunAt="server">
    void Application_BeginRequest(object sender, EventArgs e)
    {
        string oldUrl = System.Web.HttpContext.Current.Request.RawUrl; //获取初始url

        //~/123.aspx →  ~/Index.aspx?id=123
        Regex reg = new Regex(@"^\/\d+\.html");
        if (reg.IsMatch(oldUrl))
        {
            string id = reg.Match(oldUrl).ToString().Substring(1, reg.Match(oldUrl).ToString().LastIndexOf(".") - 1);
            Context.RewritePath("~/Index.aspx?id=" + id);
        }

        //~/123 → ~/Index.aspx?id=123
        Regex reg1 = new Regex(@"^\/\d+$");
        if (reg1.IsMatch(oldUrl))
        {
            string id = reg1.Match(oldUrl).ToString().Substring(1);
            Context.RewritePath("~/Index.aspx?id=" + id);
        }

        //~/index/123 → ~/Index.aspx?id=123
        Regex reg3 = new Regex(@"^\/index\/\d+$");
        if (reg3.IsMatch(oldUrl))
        {
            string id = reg3.Match(oldUrl).ToString().Substring(7);
            Context.RewritePath("~/Index.aspx?id=" + id);
        }
    }
       
</script>

 

 

 

posted on 2013-08-14 18:34  风言枫语  阅读(381)  评论(0编辑  收藏  举报