如何在 web.config 中设置规则以重写到 IIS7 中的子目录/文件



我在尝试在 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(见相关学习)

最新更新