在文件为404和302的情况下禁用IIS服务器响应头 [英] Disabling IIS Server Response Headers in Case of 404 and 302 Files

查看:27
本文介绍了在文件为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆