Global.asax的Application_BeginRequest实现url重写无后缀的代码

  利用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>