我在尝试在 IIS7 web.config 中重写时遇到问题。
我需要将像/err/interaccess 这样的 URL 重写为/err/404new.asp(不是重定向,因为我不想公开文件。
我尝试了以下内容,它仅在我使用/interaccess 而不是/err/interaccess 时才有效
<rule name="Rewrite Interaccess Error" enabled="true" stopProcessing="true">
<match url="^tinteraccess$" />
<action type="Rewrite" url="/err/404new.asp" />
</rule>
知道为什么吗? 我试图找到有关此的文档,但找不到有关此用法的任何内容。
神奇之处在于<match>
标签的正则表达式。要使其与您的确切 URL 匹配,您将使用:
<rule name="Rewrite Interaccess Error" enabled="true" stopProcessing="true">
<match url="^err/interaccess$" />
<action type="Rewrite" url="/err/404new.asp" />
</rule>
如果您想匹配/err/
下的所有内容,您将使用:
<rule name="Rewrite Interaccess Error" enabled="true" stopProcessing="true">
<match url="^err/" />
<action type="Rewrite" url="/err/404new.asp" />
</rule>
这一切都有很好的记录,例如:http://www.iis.net/downloads/microsoft/url-rewrite(见相关学习)