Я только что обновился до VS2010 / IIS 7.5 / URL Rewrite 2.0.То, что я хочу сделать, довольно легко, я себе представляю, но я очень устал от попыток заставить это работать самостоятельно.
Я просто хочу очистить URL-адреса, в результате чего http://example.com/abc-def.aspx становится http://example.com/abc-def/,, эффективно удаляя расширение .aspx и добавляя косую черту.
Я сделал это с помощью:
<rule name="Trim aspx for directory URLs">
<match url="(.+)\.aspx$" />
<action type="Redirect" redirectType="Permanent" url="{R:1}/" />
</rule>
Это работает простоотлично и перенаправляет по назначению, но не открывает страницу, поэтому я подумал, что мне нужно объединить это с правилом перезаписи, чтобы он разрешил чистый URL-адрес к соответствующей странице .aspx.
У меня естьпопытался сделать это, используя:
<rule name="Add aspx extension back internally">
<match url="^http://example\.com/(.+)/$" ignoreCase="true" />
<conditions>
<add input="{URL}" matchType="IsDirectory" negate="true" />
<add input="{URL}" pattern=".+/externals/.+" negate="true" />
</conditions>
<action type="Rewrite" url="{R:1}.aspx" />
</rule>
Правило перенаправления работает, но кажется, что внутреннее правило перезаписи не работает, потому что страница не открывается.Что я делаю не так?