IIS Benutzerdefinierte Fehler 404: URL return response-code 200 statt
Ich versuche, um wieder eine benutzerdefinierte 404-Seite mit IIS6. (Ich habe eine Website, die ist meist .shtml-Seiten gebaut mit beweglichen Lettern). Ich habe es 2 Möglichkeiten:
1) stellen Sie den 404-Fehler-handler in IIS Typ "file" mit dem Pfad \404.html. Das funktioniert auch, aber es bedeutet auch, dass ich nicht importieren können die Kopf-und Fußzeile auf meiner Website (daher der .shtml), die Versuchen, um die 404-Fehler-handler für 404.shtml Ergebnisse in der Standard-404-Seite...ich denke, kann IIS nicht verarbeiten shtml-Dateien in die 404.
2) setzen Sie den Typ auf "URL". Dies funktioniert gut, außer, dass der response-code wird nicht mehr 404! Seine 200.
Wie kann ich IIS antwortet mit einem 404-Antwortcode mit dem Inhalt meines 404.shtml-Datei?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gegeben, dass es IIS, hinzufügen
den top-404.shtml sollte der response-code 404.
Bin ich nicht auf eine windows-Maschine, so bin ich nicht in der Lage es zu testen, im moment zu überprüfen.
Update:
War ich endlich in der Lage zu laufen ein paar tests auf einem IIS 6. Wie Sie bereits erwähnt in einem Kommentar zu meinem Beitrag, ein .shtml - Datei ist nicht zulässig Skript-Befehle ausgeführt werden. Es gibt also mindestens zwei Möglichkeiten, dies zu umgehen:
Statt der Benennung Ihrer benutzerdefinierten 404-handling Seite 404.shtml, nennen Sie es 404.asp. Der Benutzer sollte nie sehen, der eigentliche name der Seite, es sollte also keine Probleme verursachen. Beachten Sie, dass "Active Server Pages" muss auf "Erlaubt" in die Web-Service-Erweiterungen-Ordner des IIS.
Ändern Sie die Endung der Seite Zuordnung für .shtml verwenden asp.dll statt ssinc.dll. Sie können dies tun, von IIS, indem Sie die website und anzeigen der Eigenschaften -> Registerkarte Basisverzeichnis -> Konfiguration -> Registerkarte Zuordnungen. Beachten Sie, dass dies ist weit von einer idealen Lösung, weil jetzt alle Ihre .shtml - Dateien verarbeitet werden, die von asp.dll. Dies könnte dazu führen, die Seiten zu Rendern langsamer (vorausgesetzt asp.dll Prozesse, Dateien langsamer als ssinc.dll aufgrund größerer Komplexität) und gegen die Prinzip der geringsten Rechte.
Wenn weder die Optionen Ihrer situation passen, dann kann es noch möglich sein, aber die Lösung ist nicht sofort offensichtlich zu mir.
Im IIS-Manager öffnen Sie die Eigenschaften für Ihre Website (oder virtuelles Verzeichnis) und gehen Sie auf die Registerkarte Benutzerdefinierte Fehler. Dort können Sie festlegen, welche Datei gesendet wird, im Fall von jeder-Fehler-code, einschließlich 404.