/ / Как да игнорирам разширение .aspx, когато използвам карта за пренаписване? - url-rewriting, iis-7

Как да пренебрегвам разширението .aspx при използване на карта за пренаписване? - URL преписване, iis-7

Имам карта за пренаписване с ~ 100 стар URL към нови редове URL:

<rewriteMaps>
<rewriteMap name="OldSiteRewriteMap" defaultValue="">
...
<add key="/a/b/oldpage" value="/x/y/newpage" />
...
</rewriteMap>
</rewriteMaps>

Имам правило за пренаписване, което използва тази карта за пренасочване на URL адресите "(току-що стартирахме нов уебсайт и свързваме URL адресите от стария сайт към съответния URL адрес на новия сайт):

<rule name="Redirect old site URLs">
<match url=".*" />
<conditions>
<add input="{OldSiteRewriteMap:{PATH_INFO}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" redirectType="Permanent" appendQueryString="false" />
</rule>

Когато посещавам http://example.com/a/b/oldpage (стария URL на сайта), към който се препращам http://example.com/x/y/newpage - страхотен! Но когато посетя http://example.com/a/b/oldpage.aspx -посочете разширение .aspx - не се пренасочвам.

Как мога да кажа на моето правило за презаписване да игнорира разширение ".aspx", когато се опитва да свърже URL адреса, използвайки картата за пренаписване?

Отговори:

0 за отговор № 1

Един колега предложи следното - използвайки aregex в "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>