我的重写模块非常适合我的 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" />