Iis – It it possible to have multiple ReWrite rules that all do the same Action, for an IIS7.5 webserver

iisiis-7.5rewrite

I've got rewrite module working great for my IIS7.5 site.

Now, I wish to add a number of URLs that all go to an HTTP 410-Gone status.

Eg.

<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>

but that's invalid – the website doesn't start saying there's a rewrite config error.

Is there another way I can do this? I don't particularly want define a single URL and ACTION for each URL.

Best Answer

You need to match every request, and then use conditions to filter it to just your specific URLs:

<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>