ASP.NET Web.config URL重写正则表达式

时间:2018-07-11 00:15:16

标签: asp.net regex url-rewriting

我正在尝试清理一些返回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 instructions,但是,即使my test显示了上述正则表达式应该起作用,也没有任何反应。我尝试执行更常见的重定向,如下所示:

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

但是,仍然没有任何反应。就像我的正则表达式不好一样?

1 个答案:

答案 0 :(得分:0)

我终于弄清楚了:

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