URLRewriter重写[转]

首先,先将URLRewriter.dll引入项目
http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
这里包含着URLRewriter和ActionlessForm,如果有必要,可以进行重写,编译后将.dll引入到项目中.

我先对webconfig进行配制.Web.config 文件中指明要使用 HTTP 模块还是 HTTP 处理程序来执行 URL 重写。这里使用了HTTP 模块进行处理

<configSections>
URLRewriter重写 - 一江惊人 - 爱你依然    
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>
<httpModules>
URLRewriter重写 - 一江惊人 - 爱你依然    
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>

若使用HTTP 处理程序,则在httpHandlers中进行配制
<httpHandlers>
   <add verb="*" path="*.aspx"
        type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>

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

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

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

在 <LookFor> 元素中指定模式时,请注意,要使用正则表达式来执行匹配和字符串替换。由于模式是正则表达式,应确保转义正则表达式中的任何保留字符。(一些正则表达式保留字符包括:.、?、^、$ 及其他。可以通过在前面加反斜杠(如 \.)对这些字符进行转义,以匹配文字句点。)

在configuration下加入一结点

<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>
      <RewriterRule>
        <LookFor>~/ModalPopupExtender</LookFor>
        <SendTo>~/ModalPopupExtender.aspx</SendTo>
      </RewriterRule>
    </Rules>
</RewriterConfig>

 此时输入ModalPopupExtender时,就导向了ModalPopupExtender.aspx页面

 

 原文链接:http://yijiangjingren.blog.163.com/blog/static/11246826720091029425549/

你可能感兴趣的:(urlrewrite)