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 将被重写,并且对重写规则的搜索将会终止。

你可能感兴趣的:(asp.net)