我想在我的web服务器响应中隐藏IIS版本。我正试图通过URLRewrite为我的网站做这件事。
我的web.config看起来是这样的:
<rewrite>
<outboundRules>
<rule name="RewriteServerSoftware" stopProcessing="true">
<match serverVariable="SERVER_SOFTWARE" pattern="." />
<action type="Rewrite" value="MyServer" replace="true" />
</rule>
</outboundRules>
</rewrite>然而,这似乎并没有删除Server:Microsoft-IIS/8.0的值。我可能错过了什么?
我的环境是Windows 2012 R2和IIS8.0,托管一个ASP.NET网站
发布于 2018-01-29 17:42:27
正确的服务器变量名是:RESPONSE_Server,它遵循RESPONSE_headername格式。
因此,您的配置应该是:
<rewrite>
<outboundRules>
<rule name="RewriteServerSoftware" stopProcessing="true">
<match serverVariable="RESPONSE_Server" pattern=".+" />
<action type="Rewrite" value="MyServer" replace="true" />
</rule>
</outboundRules>
</rewrite>另外要注意的是,如果您使用的是IIS10.0,您可能还需要在web.config中添加以下内容:
<system.webServer>
<security>
<requestFiltering removeServerHeader="true" />
</security>
</system.webServer>在我的情况下,IIS10.0只使用removeServerHeader URL-重写和工作。
更多信息:https://learn.microsoft.com/en-us/iis/configuration/system.webserver/security/requestfiltering/
https://stackoverflow.com/questions/47553855
复制相似问题