Ich habe erfolgreich benutzerdefinierte statische Fehlerseiten für IIS7 eingerichtet. IIS7 arbeitet derzeit als Gateway zu einer Java-Tomcat-Anwendung. Das Problem ist, dass die 404-Fehlerseite beim Bereitstellen mit einem HTTP 200-Statuscode-Header bereitgestellt wird. Ich möchte IIS so konfigurieren, dass weiterhin ein HTTP 404 gesendet wird. Die Fehlerseite ist als statische Seite im Webroot vorhanden.
Dies ist der Hauptteil meiner 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>
iis-7
http-status-code-404
http-headers
Ben Doerr
quelle
quelle
responseMode="ExecuteURL"
? Sie liefern eine statische Datei!Antworten:
Wechseln Sie zu "Verwenden".
responseMode="File"
Der Trick dabei besteht jedoch darin, relative Dateipfade zu verwenden, es sei denn, Sie entsperren oder setzen auf "true"system.webServer/httpErrors allowAbsolutePathsWhenDelegated
.Beispiel für einen web.config-Auszug:
quelle