Ich baue eine Mischung aus statischen Seiten und Knoten-Website mit Azure WebApps und ich hätte gerne eine benutzerdefinierte 404-Seite und ich kann es einfach nicht funktionieren. Die meisten der Website ist statisch, aber ich habe ein paar Routen, die Server-Code erfordern. Mein web.config sieht wie folgt aus:Benutzerdefinierte statische Fehlerseite mit Knoten und Azure WebApp
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By"/>
<add name="x-dns-prefetch-control" value="on"/>
</customHeaders>
</httpProtocol>
<handlers>
<add name="iisnode" path="src/server/index.js" verb="*" modules="iisnode"/>
</handlers>
<rewrite>
<rules>
<rule name="static">
<match url="(?!dynamicroute).*$" ignoreCase="true"/>
<action type="Rewrite" url="dist{REQUEST_URI}"/>
</rule>
<rule name="dynamic">
<match url="(?:dynamicroute)(.*)$" ignoreCase="true"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
</conditions>
<action type="Rewrite" url="src/server/index.js"/>
</rule>
</rules>
</rewrite>
<!-- Make sure error responses are left untouched -->
<!--<httpErrors existingResponse="PassThrough"/>-->
<httpErrors errorMode="Custom" defaultResponseMode="File" existingResponse="PassThrough">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="~/404.html" responseMode="File" />
</httpErrors>
</system.webServer>
</configuration>
Ich habe versucht, mit verschiedenen Variationen von httpErrors
, Wert der path
, responseMode
, existingResponse="PassThrough"
entfernen, etc., aber ich kann einfach nicht damit es funktioniert.
Zugriff direkt /404.html
funktioniert. Der Server gibt beim Zugriff auf eine URL, die nicht existiert, einen 404-Fehler zurück, nur nicht den benutzerdefinierten, den ich möchte. Was mache ich falsch?
Ich weiß, ich könnte alles von Knotenland aus behandeln, aber ich möchte das möglichst vermeiden.
Ich weiß nicht, was ich falsch mache, aber das funktionierte. Danke vielmals! –