IIS 7在自定义404错误页面上返回HTTP 200

我已经成功地为IIS7设置了自定义静态错误页面。 IIS7目前正在作为Java Tomcat应用程序的网关。 问题是当404错误页面被提供时,它被提供一个HTTP 200状态docker。 我想要一种configurationIIS以继续发送HTTP 404的方法。错误页面在webroot中以静态页面的forms存在。

这是我的web.config的主要部分:

<system.webServer> <rewrite> <rules> <rule name="HTTP to HTTPS Redirect" enabled="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Found" /> </rule> <rule name="Reverse Proxy" stopProcessing="true"> <match url="(.*)" /> <action type="Rewrite" url="http://localhost:8080/{R:1}" /> <conditions> <add input="{R:1}" pattern="error/*." negate="true" /> </conditions> </rule> </rules> </rewrite> <httpErrors errorMode="Custom" existingResponse="Auto"> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" prefixLanguageFilePath="" path="/error/404.htm" responseMode="ExecuteURL" /> </httpErrors> </system.webServer> 

切换到使用responseMode="File"但是这个技巧将使用相对的文件path,除非你解锁或设置为true system.webServer/httpErrors allowAbsolutePathsWhenDelegated

示例web.config摘录:

 <httpErrors> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" prefixLanguageFilePath="" path="error\404.htm" responseMode="File" /> </httpErrors>