1) Su web.config existente: ha declarado reescribir el mapa ... pero no ha creado ninguna regla que lo use. RewriteMap por sí solo no hace absolutamente nada.
2) A continuación se muestra cómo puede hacerlo (que no utiliza mapas de reescritura - sólo las reglas, lo cual está bien para la pequeña cantidad de reescrituras/redirecciones):
Esta regla se hará reescritura EXACTA SOLA (interno redirigir) /page
a /page.html
. La URL en el navegador permanecerá sin cambios.
<system.webServer>
<rewrite>
<rules>
<rule name="SpecificRewrite" stopProcessing="true">
<match url="^page$" />
<action type="Rewrite" url="/page.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
Esta regla # 2 hará lo mismo que el anterior, pero lo hará redireccionamiento 301 (redirección permanente), donde el URL en el navegador va a cambiar.
<system.webServer>
<rewrite>
<rules>
<rule name="SpecificRedirect" stopProcessing="true">
<match url="^page$" />
<action type="Redirect" url="/page.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
Regla # 3 intentará ejecutar tales reescritura para cualquier URL si hay tal archivo con la extensión .html (es decir, para /page
se comprobará si existe /page.html
, y si lo hace entonces reescribir ocurre):
<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>
Siempre, aunque no puedo usarlo ahora ... pero para el futuro, o tal vez para ayudar a los demás :) –