IIS UrlRewrite不适用于404请求

时间:2016-05-09 19:30:52

标签: iis http-headers asp.net-web-api2

我正在尝试删除"服务器"来自IIS 8.0的标头。我已经安装了UrlRewrite并将以下代码添加到我的web.config:

<rewrite>
  <outboundRules rewriteBeforeCache="true">
    <rule name="Remove Server header">
      <match serverVariable="RESPONSE_Server" pattern=".+" />
      <action type="Rewrite" value="" />
    </rule>
  </outboundRules>
</rewrite>

然而,当一个请求进入生成404时,&#34;服务器&#34>标题仍包含在内。

有关如何解决此问题的任何建议?

我正在使用在带有IIS 8的Windows Server 2012上运行的Web API。

1 个答案:

答案 0 :(得分:0)

首先在管道中添加一个owin中间件:

public void Configuration(IAppBuilder app)
{
    app.Use(async (ctx, next) =>
    {
        ctx.Response.OnSendingHeaders(state =>
        {
            var res = (OwinResponse)state;
            res.Headers.Remove("Server");
        }, ctx.Response);

        await next();
    });

    //...
}