Назад | Перейти на главную страницу

Возможно ли иметь несколько правил перезаписи, которые выполняют одно и то же действие, для веб-сервера IIS7.5?

У меня есть модуль перезаписи, отлично работающий на моем сайте IIS7.5.

Теперь я хочу добавить несколько URL-адресов, которые все переходят в статус HTTP 410-Gone.

Например.

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

но это неверно - веб-сайт не начинает сообщать об ошибке конфигурации перезаписи.

Есть ли другой способ сделать это? Я не особо хочу определять один URL и ДЕЙСТВИЕ для каждый URL.

Вам нужно соответствовать каждый запрос, а затем используйте условия для фильтрации его только по вашим конкретным 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>

если вы хотите удалить несколько изображений .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" />