• ASP.NET 中执行 URL 重写


    <!--
    <httpModules>
       <add type="URLRewriter.ModuleRewriter, URLRewriter" 
            name="ModuleRewriter" />
    </httpModules>
    -->
    
    <!--
    <httpHandlers>
       <add verb="*" path="*.aspx" 
            type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
    </httpHandlers>
    -->
    

    注释掉 <httpModules> 条目,以使用 HTTP 模块执行重写;注释掉 <httpHandlers> 条目,以使用 HTTP 处理程序执行重写。

    除了指定使用 HTTP 模块还是 HTTP 处理程序执行重写外,Web.config 文件还包含重写规则:重写规则由两个字符串组成:要在被请求的 URL 中查找的模式;要替换此模式的字符串(如果找到)。在 Web.config 文件中,此信息是使用以下语法表达的:

    <RewriterConfig>
       <Rules>
       <RewriterRule>
          <LookFor>要查找的模式</LookFor>
          <SendTo>要用来替换模式的字符串</SendTo>
       </RewriterRule>
       <RewriterRule>
          <LookFor>要查找的模式</LookFor>
          <SendTo>要用来替换模式的字符串</SendTo>
       </RewriterRule>
       ...
       </Rules>
    </RewriterConfig>
    

    <RewriterConfig>
       <Rules>
             <RewriterRule>
             <LookFor>~/(\d{4})/(\d{2})/(\d{2})\.aspx</LookFor>
             <SendTo>~/ShowBlogContent.aspx?year=$1&amp;month=$2&amp;day=$3</SendTo>
          </RewriterRule>
          <RewriterRule>
             <LookFor>~/(\d{4})/(\d{2})/Default\.aspx</LookFor>
             <SendTo><![CDATA[~/ShowBlogContent.aspx?year=$1&month=$2]]></SendTo>
          </RewriterRule>
          <RewriterRule>
             <LookFor>~/(\d{4})/Default\.aspx</LookFor>
             <SendTo>~/ShowBlogContent.aspx?year=$1</SendTo>
          </RewriterRule>
       </Rules>
    </RewriterConfig>

    每个重写规则均由 <RewriterRule> 元素表达。要搜索的模式由 <LookFor> 元素指定,而要替换所找到的模式的字符串将在 <SentTo> 元素中输入。这些重写规则将从头到尾进行计算。如果发现与某个规则匹配,URL 将被重写,并且对重写规则的搜索将会终止。

  • 相关阅读:
    左偏树
    “今日头条杯”首届湖北省大学程序设计竞赛现场赛
    最短路
    BP神经网络算法改进
    图论学习路线
    差分演化算法
    51Nod 1413 权势二进制
    51Nod 1315 合法整数集
    Treap(树堆)
    今日头条杯2018湖北省大学生程序设计竞赛(网络赛)
  • 原文地址:https://www.cnblogs.com/liyugang/p/1641810.html
Copyright © 2020-2023  润新知