Erstellen einer benutzerdefinierten Fehlerseite für bestimmte HTTP-Statuscodes - Amazon CloudFront

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:

Screenshot eines Beispiels einer benutzerdefinierten AWS-404-Seite

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 Exceeded oder Limit Exceeded lautet, 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: close oder Connection: keep-alive zurück:

      • CloudFront gibt Connection: close für folgende Statuscodes zurück: 400, 405, 414, 416, 500, 501

      • CloudFront gibt Connection: keep-alive fü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.