关于URL重写的问题。在网上找了很多,都是浏览器发来请求hostname/101.aspx ,服务器自动将这个请求中定向为http://hostname/list.aspx?id=101这种形式的重写,我想要的是请求101.aspx,在地址栏中显示的是101.html这种形式的。
那位大鸟 给点资料。网上的和我想要的有点区别。

解决方案 »

  1.   

    完全可以自己写,写一个继承IHttpModule的handle就可以了。context.BeginRequest
      

  2.   

    protected void Application_BeginRequest(object sender, EventArgs e)
      {
    //原来的url
    string url = HttpContext.Current.Request.RawUrl;
    //经过处理的新的url
    string newUrl = ""
    HttpContext.Current.RewritePath(newUrl);
    }//demo  string url = HttpContext.Current.Request.RawUrl;
      string pattern = @"(\S+)(article/)+(\S+)(/read.aspx)(\S*)";
      string newUrl = "";  
       
      if (System.Text.RegularExpressions.Regex.IsMatch(url, pattern, System.Text.RegularExpressions.RegexOptions.Compiled | System.Text.RegularExpressions.RegexOptions.IgnoreCase))
      {
      newUrl = System.Text.RegularExpressions.Regex.Replace(url, pattern, "$1Article.aspx?articleId=$3");
      HttpContext.Current.RewritePath(newUrl);
      }
      

  3.   


    大侠,你给的第一段代码写在Global里面吗?第二段代码写在页面的 page_load里面吗?
      

  4.   


    这个方法有问题,没哦有重写url,只是把请求的地址,给更改了。