如何删除由 IIS 10 上托管的 ASP.NET Web 表单应用程序作为服务器的静态内容(例如 javascript/css/images)的服务器标头?我想我已经尝试了几乎所有我发现的东西,但我仍然无法摆脱它。目前,我有:
<security><requestFiltering removeServerHeader="true">...
<modules runAllManagedModulesForAllRequests="true">...
<httpProtocol> <customHeaders> <remove name="Server"/>
URL重写规则:
<outboundRules rewriteBeforeCache="true">
<rule name="Remove RESPONSE_Server" >
<match serverVariable="RESPONSE_Server" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
</outboundRules>
甚至启用了标头模块的 Apache 2.4 反向代理:
LoadModule headers_module modules/mod_headers.so
...
<IfModule headers_module>
RequestHeader unset Server
</IfModule>```
> And I still get Server: Microsoft-IIS/10.0 added to static file
> responses. Please let me know what I am missing here or if there is
> anything else I can do to get rid of this header.
据我所知,Url Rewrite 不会删除服务器变量,只是将其留空。
在大多数情况下,我们可以通过IIS中的removeServerHeader属性删除服务器标头。这里我发现你在web.config中编辑了以下属性:
<system.webServer>
<security>
<requestFiltering removeServerHeader="true">
<!-- other request filtering stuff -->
</requestFiltering>
</security>
</system.webServer>
这是为了删除站点级别的服务器标头。
我建议您也在服务器级别执行以下操作。