1) Ваш существующий web.config: вы объявили карту перезаписи .. но не создали никаких правил, которые будут ее использовать.RewriteMap сам по себе абсолютно ничего не делает.
2) Ниже описано, как вы можете это сделать (он не использует карты перезаписи - только правила, что подходит для небольшого количества переписываний / перенаправлений):
Это правило выполнит перезапись с ОДНОЙ ТОЧНОСТЬЮ (внутреннее перенаправление) /page
до /page.html
.URL в браузере останется неизменным.
<system.webServer>
<rewrite>
<rules>
<rule name="SpecificRewrite" stopProcessing="true">
<match url="^page$" />
<action type="Rewrite" url="/page.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
Это правило # 2 будет действовать так же, как указано выше, но будет выполнять перенаправление 301 (постоянное перенаправление), где URL будет изменяться в браузере.
<system.webServer>
<rewrite>
<rules>
<rule name="SpecificRedirect" stopProcessing="true">
<match url="^page$" />
<action type="Redirect" url="/page.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
Правило № 3 будет пытаться выполнить такое переписывание для ЛЮБОГО URL, если существует такой файл с расширением .html (т. Е. Для /page
оно проверит, существует ли /page.html
, и если оно произойдет, тогда произойдет перезапись):
<system.webServer>
<rewrite>
<rules>
<rule name="DynamicRewrite" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{REQUEST_FILENAME}\.html" matchType="IsFile" />
</conditions>
<action type="Rewrite" url="/{R:1}.html" />
</rule>
</rules>
</rewrite>
</system.webServer>