ASP.NET url重写

url重写


一、原理
void Application_BeginRequest(object sender, EventArgs e)
    {
        var Request = HttpContext.Current.Request;
        var Response = HttpContext.Current.Response;

        System.Text.RegularExpressions.Regex reg = new Regex(@"/default\-(\d{2})\.aspx",RegexOptions.IgnoreCase);
        Match match = reg.Match(Request.RawUrl);
        if (match.Success)
        {
            string s = match.Groups[1].Value;
            string url = "default.aspx?id=" + s;
            HttpContext.Current.RewritePath(url);
        }
    }
使用微软写好的  只需进行配置就好
 二、urlRewriter
0. 把类库复制到bin下 添加引用
1、在<configSections>节点加入
 <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
2、在</configSections>之后加入
 
  <RewriterConfig>
    <Rules>
      <RewriterRule>
        <LookFor>~/(\d{4})/(\d{2})/Default\.aspx</LookFor>
        <SendTo>~/Default.aspx?ID=$1</SendTo>
      </RewriterRule>
   <RewriterRule>
        <LookFor>~/(\d{4})/(\d{2})/Default\.html</LookFor>
        <SendTo>~/Default.aspx?ID=$2</SendTo> <!--$2 是指的是 (\d{2})-->
      </RewriterRule>
    </Rules>
  </RewriterConfig>
3、<httpHandlers>中加入
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

转载请注明出处,感谢。
作者:李宏旭
阅罢此文,如果您觉得本文不错并有所收获,请【打赏】或【推荐】,也可【评论】留下您的问题或建议与我交流。
你的支持是我不断创作和分享的不竭动力!
原文地址:https://www.cnblogs.com/bjlhx/p/2265826.html