Url rewriting 使用重写映射时,如何忽略.aspx扩展名?
我有一个重写映射,其中包含约100个旧URL到新URL行:Url rewriting 使用重写映射时,如何忽略.aspx扩展名?,url-rewriting,iis-7,Url Rewriting,Iis 7,我有一个重写映射,其中包含约100个旧URL到新URL行: <rewriteMaps> <rewriteMap name="OldSiteRewriteMap" defaultValue=""> ... <add key="/a/b/oldpage" value="/x/y/newpage" /> ... </rewriteMap> </rewriteMaps> ... (旧网站URL)我被重定向到-
<rewriteMaps>
<rewriteMap name="OldSiteRewriteMap" defaultValue="">
...
<add key="/a/b/oldpage" value="/x/y/newpage" />
...
</rewriteMap>
</rewriteMaps>
...
(旧网站URL)我被重定向到-太棒了!但是当我访问时——请注意.aspx扩展名——我不会被重定向
当我的重写规则试图使用重写映射来映射URL时,如何让它忽略“.aspx”扩展名?一位同事提出了以下建议-在“匹配URL”中使用正则表达式来捕获除可能的尾随“.aspx”之外的所有内容然后将捕获传递给重写映射,以代替PATH_INFO或任何其他服务器变量。看起来效果不错
<rule name="Redirect old site URLs">
<match url="^(.+?)(\.aspx)?$" />
<conditions>
<add input="{OldSiteRewriteMap:{R:1}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" redirectType="Permanent" appendQueryString="false" />
</rule>
<rule name="Redirect old site URLs">
<match url="^(.+?)(\.aspx)?$" />
<conditions>
<add input="{OldSiteRewriteMap:{R:1}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" redirectType="Permanent" appendQueryString="false" />
</rule>