对于 IIS7.5 网络服务器,是否可以有多个执行相同操作的 ReWrite 规则?

对于 IIS7.5 网络服务器,是否可以有多个执行相同操作的 ReWrite 规则?

我的重写模块非常适合我的 IIS7.5 网站。

现在,我希望添加一些全部转到 HTTP 410-Gone 状态的 URL。

例如。

<rule name="Old Site = image1" patternSyntax="ExactMatch" stopProcessing="true">
  <match url="image/loading_large.gif"/>
  <match url="image/aaa.gif"/>
  <match url="image/bbb.gif"/>
  <match url="image/ccc.gif"/>
  <action type="CustomResponse" statusCode="410"
            statusReason="Gone"
            statusDescription="The requested resource is no longer available" />
</rule>

但这是无效的——网站并没有开始说存在重写配置错误。

还有其他方法可以做到这一点吗?我并不特别想为每个网址。

答案1

你需要匹配每一个请求,然后使用条件将其过滤为特定的 URL:

<rule name="Old Site = Image1" stopProcessing="true">
    <match url="^(.*)$" />
    <conditions logicalGrouping="MatchAny">
        <add input="{REQUEST_URI}" pattern="^(.*)image/aaa.gif$" />
        <add input="{REQUEST_URI}" pattern="^(.*)image/bbb.gif$" />
        <add input="{REQUEST_URI}" pattern="^(.*)image/ccc.gif$" />
    </conditions>
    <action type="CustomResponse" statusCode="410" statusReason="Gone" statusDescription="The requested resource is no longer available" />
</rule>

答案2

如果您想从图像文件夹中删除多个 .gif 图像,那么您也可以使用 (.*) 通配符正则表达式,如下所示。

例如。


<rule name="Old Site = Image1" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAny">
    <add input="{REQUEST_URI}" pattern="^(.*)image/(.*).gif$" />
</conditions>
<action type="CustomResponse" statusCode="410" statusReason="Gone" statusDescription="The requested resource is no longer available" />

相关内容