URL-адрес ASP.NET Web.config переписать регулярное выражение

Я пытаюсь очистить некоторые запросы, которые возвращают 404, а не 200.

Например, у кого-то есть такие ссылки на мой сайт:

http://example.com/?publisher=123456

Я пытаюсь добавить правило перезаписи для обработки этого случая следующим образом:

    <rule name="Redirect publisher" stopProcessing="true">
      <match url="(.*)\/\?publisher=(.*)$" negate="false" />
      <conditions logicalGrouping="MatchAny" trackAllCaptures="false"></conditions>
      <action type="CustomResponse" statusCode="404" statusReason="Not Found" statusDescription="The requested URL was not found." />
    </rule>

Я выполнил Microsoft инструкции, хотя мой тест показывает, что приведенное выше регулярное выражение должно работать , Ничего не произошло. Я попытался сделать более распространенное перенаправление, например:

<action type="Redirect" url="https://{HTTP_HOST}" redirectType="Permanent" />

Однако опять ничего не происходит. Это похоже на то, что мое регулярное выражение плохое или что-то в этом роде?


person Serj Sagan    schedule 11.07.2018    source источник


Ответы (1)


Наконец-то я понял:

    <rule name="Redirect publisher" stopProcessing="true">
      <match url=".*" />
      <conditions>
        <add input="{QUERY_STRING}" pattern="publisher" negate="false" />
      </conditions>
      <action type="CustomResponse" statusCode="404" statusReason="Not Found" statusDescription="The requested URL was not found." />
    </rule>
person Serj Sagan    schedule 11.07.2018