27 个问题
你好,
1)您现有的 web.config:您已声明重写映射.但尚未创建任何将使用它的规则。 RewriteMap 本身没有起任何作用。
2)下面是如何做到这一点(它不使用重写映射——仅使用规则,这对于少量重写/重定向来说很好):
此规则#1 将执行一次精确重写(内部重定向)“/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>
如果存在带有 .html 扩展名的文件,规则 #3 将尝试对任何 URL 执行此类重写(即,对于“/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>
如果答案是正确的解决方案,请单击“接受答案”并请投赞成票。如果您对此答案有其他疑问,请点击“评论”。
注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。
最好的问候