Erstellen einer benutzerdefinierten Fehlerseite für bestimmte HTTP-Statuscodes
Falls Sie es vorziehen, eine benutzerdefinierte Fehlermeldung anstatt der Standardmeldung anzuzeigen – zum Beispiel eine Seite mit der gleichen Formatierung wie der Rest der Website –, können Sie CloudFront so konfigurieren, dass ein Objekt (z. B. eine HTML-Datei) mit Ihrer benutzerdefinierten Fehlermeldung an den Betrachter zurückgegeben wird.
Um die Datei, die zurückgegeben werden soll, und die Fehler, bei denen die Datei zurückgegeben werden sollte, anzugeben, aktualisieren Sie Ihre CloudFront-Verteilung so, dass diese Werte angegeben werden. Weitere Informationen finden Sie unter Konfigurieren des Fehlerantwortverhaltens.
Zum Beispiel ist das Folgende eine benutzerdefinierte Fehlerseite:
Sie können ein anderes Objekt für jeden unterstützten HTTP-Statuscode festlegen oder Sie können dasselbe Objekt für alle unterstützten Statuscodes verwenden. Es ist möglich, benutzerdefinierte Fehlerseiten für einige Statuscodes festzulegen und für andere nicht.
Die Objekte, die Sie über CloudFront bereitstellen, können aus vielen Gründen nicht verfügbar sein. Diese gliedern sich in zwei große Kategorien:
-
Client-Fehler weisen auf ein Problem mit der Anfrage hin. Beispielsweise ist ein Objekt mit dem angegebenen Namen nicht verfügbar oder der Benutzer verfügt nicht über die erforderlichen Berechtigungen, um ein Objekt in Ihrem Amazon S3-Bucket abzurufen. Wenn ein Client-Fehler auftritt, gibt der Ursprung einen HTTP-Statuscode im Bereich 4xx an CloudFront zurück.
-
Server-Fehler weisen auf ein Problem mit dem Ursprungs-Server hin. Beispielsweise ist der HTTP-Server ausgelastet oder nicht verfügbar. Wenn ein Server-Fehler auftritt, gibt Ihr Ursprungs-Server entweder einen HTTP-Statuscode im Bereich 5xx an CloudFront zurück oder CloudFront erhält für einen bestimmten Zeitraum keine Antwort von Ihrem Ursprungs-Server und geht von einem 504-Statuscode aus (Gateway Timeout).
Zu den HTTP-Statuscodes, für die CloudFront eine benutzerdefinierte Fehlerseite zurückgeben kann, gehören die folgenden:
-
400, 403, 404, 405, 414, 416
-
500, 501, 502, 503, 504
Hinweise
-
Wenn CloudFront feststellt, dass die Anforderung möglicherweise unsicher ist, gibt CloudFront statt einer benutzerdefinierten Fehlerseite einen 400-Fehler (Bad Request) zurück.
-
Sie können eine benutzerdefinierte Fehlerseite für HTTP-Statuscode 416 (Requested Range Not Satisfiable) erstellen und Sie können den HTTP-Statuscode ändern, den CloudFront an Betrachter zurückgibt, wenn Ihr Ursprung einen Statuscode 416 an CloudFront zurückgibt. Weitere Informationen finden Sie unter Ändern der von CloudFront zurückgegebenen Antwortcodes. CloudFront speichert jedoch keine Statuscode-416-Antworten zwischen. Selbst wenn Sie einen Wert für Error Caching Minimum TTL (Mindest-TTL für die Zwischenspeicherung von Fehlern) für Statuscode 416 festlegen, verwendet Cloudfront diesen nicht.
-
In einigen Fällen gibt CloudFront keine benutzerdefinierte Fehlerseite für den Statuscode HTTP 503 zurück, selbst wenn Sie CloudFront dafür konfigurieren. Wenn der CloudFront-Fehlercode
Capacity ExceededoderLimit Exceededlautet, gibt CloudFront einen 503-Statuscode an den Betrachter zurück, ohne Ihre benutzerdefinierte Fehlerseite zu verwenden. -
Wenn Sie eine benutzerdefinierte Fehlerseite erstellt haben, gibt CloudFront für die folgenden Antwortcodes
Connection: closeoderConnection: keep-alivezurück:-
CloudFront gibt
Connection: closefür folgende Statuscodes zurück: 400, 405, 414, 416, 500, 501 -
CloudFront gibt
Connection: keep-alivefür folgende Statuscodes zurück: 403, 404, 502, 503, 504
-
-
Eine detaillierte Erläuterung, wie CloudFront Fehlermeldungen von Ihrem Ursprung verarbeitet, finden Sie unter So verarbeitet CloudFront die HTTP-Statuscodes 4xx und 5xx von Ihrem Ursprung.