在文件为404和302的情况下禁用IIS服务器响应头 [英] Disabling IIS Server Response Headers in Case of 404 and 302 Files
本文介绍了在文件为404和302的情况下禁用IIS服务器响应头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用以下自定义头和重写规则删除服务器响应头IIS 8.5,但在Firefox或Chrome上打开网络监视器并指向任何状态为404(以及缺少图像)的文件或302(以及aspxerror路径重定向中缺少的目录或请求的文件)时,我可以看到原始的头。
例如,Microsoft网站隐藏了此信息和标头,但访问URL like this将使我可以轻松确定服务器和IIS版本:
服务器Microsoft-IIS/10.0
X-AspNet-版本4.0.30319
X技术支持ASP.NET
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By-Plesk" />
<add name="Server" value="CustomName" />
</customHeaders>
</httpProtocol>
<rewrite>
<outboundRules rewriteBeforeCache="true">
<rule name="Remove Headers 1">
<match serverVariable="RESPONSE_Server" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
<rule name="Remove Headers 2" patternSyntax="ExactMatch">
<match serverVariable="RESPONSE_SERVER" pattern=".*" />
<action type="Rewrite" value="" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
是否有任何方法可以从IIS 8.5或Web.Config修复此问题,而不必从我的ASP.NET C#代码执行此操作?
通过将";runAllManagedModulesForAllRequests=";true";";添加到推荐答案中的标记,我能够删除默认404错误页上的";服务器:microsoft-iis/8.5&q;响应标头。我必须为服务器上的每个站点执行此操作。仅供参考,此解决方案未修复默认的400错误请求&错误页面。
进行此更改后,我尚未测试性能。其他人则表示,添加";runAllManagedModulesForAllRequests=";true";";可能会导致性能下降。
此解决方案取自Rick Strahl的网站:https://weblog.west-wind.com/posts/2012/oct/25/caveats-with-the-runallmanagedmodulesforallrequests-in-iis-78
这里是将其放置在您的web.config文件中的位置。
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" >
...
</modules>
</system.webServer>
这篇关于在文件为404和302的情况下禁用IIS服务器响应头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文