Création d’une page d’erreur personnalisée pour des codes d’état HTTP spécifiques - Amazon CloudFront

Création d’une page d’erreur personnalisée pour des codes d’état HTTP spécifiques

Si vous préférez afficher un message d'erreur personnalisé au lieu du message par défaut, par exemple une page qui utilise le même formatage que le reste de votre site Web, vous pouvez faire en sorte que CloudFront renvoie à l'utilisateur un objet (par exemple, un fichier HTML) contenant votre message d'erreur personnalisé.

Pour spécifier le fichier que vous voulez renvoyer et les erreurs pour lesquelles le fichier doit être renvoyé, vous mettez à jour votre distribution CloudFront pour définir ces valeurs. Pour plus d’informations, consultez Configuration du comportement de réponses d’erreur.

Par exemple, voici une page d'erreur personnalisée :

Capture d’écran d’un exemple de page 404 personnalisée AWS.

Vous pouvez spécifier un objet différent pour chaque code de statut HTTP pris en charge, ou utiliser le même objet pour tous les codes de statut pris en charge. Vous pouvez choisir de spécifier des pages d'erreur personnalisées pour certains codes d'état et pas d'autres.

Les objets que vous servez via CloudFront peuvent ne pas être disponibles pour différentes raisons. Ces raisons se divisent en deux grandes catégories :

  • Les erreurs client indiquent un problème lié à la demande. Par exemple, un objet portant le nom spécifié n'est pas disponible, ou l'utilisateur ne dispose pas des autorisations requises pour obtenir un objet dans votre compartiment Amazon S3. Lorsqu'une erreur client se produit, l'origine renvoie un code d'état HTTP dans la plage 4xx à CloudFront.

  • Les erreurs serveur indiquent un problème lié au serveur d'origine. Par exemple, le serveur HTTP est occupé ou indisponible. Lorsqu'une erreur serveur se produit, votre serveur d'origine renvoie un code d'état HTTP dans la plage 5xx à CloudFront, ou CloudFront n'obtient pas de réponse de votre serveur d'origine pendant un certain temps et considère qu'il s'agit d'un code d'état 504 (délai de passerelle expiré).

Les codes de statut HTTP pour lesquels CloudFront peut renvoyer une page d'erreur personnalisée sont notamment les suivants :

  • 400, 403, 404, 405, 414, 416

  • 500, 501, 502, 503, 504

    Remarques
    • Si CloudFront estime que la demande peut présenter un risque, il renvoie une erreur 400 (Demande erronée) plutôt qu’une page d’erreur personnalisée.

    • Vous pouvez créer une page d’erreur personnalisée pour le code de statut HTTP 416 (Plage demandée impossible à respecter), et vous pouvez modifier le code de statut HTTP que CloudFront renvoie aux utilisateurs quand votre origine lui renvoie un code de statut 416. Pour plus d’informations, consultez Modification des codes de réponse renvoyés par CloudFront. Par contre, CloudFront ne met pas en cache les réponses avec le code d’état 416 de sorte que si vous spécifiez une valeur pour Error Caching Minimum TTL (Durée de vie minimale de la mise en cache des erreurs) pour le code d’état 416, CloudFront ne l’utilise pas.

    • Dans certains cas, CloudFront ne renvoie pas de page d'erreur personnalisée pour le code d'état HTTP 503, même si vous configurez CloudFront pour qu'il le fasse. Si le code d'erreur CloudFront est Capacity Exceeded ou Limit Exceeded, CloudFront renvoie un code d'état 503 à l'utilisateur sans utiliser votre page d'erreur personnalisée.

    • Si vous avez créé une page d’erreur personnalisée, CloudFront renvoie Connection: close ou Connection: keep-alive pour les codes de réponse suivants :

      • CloudFront renvoie Connection: close pour les codes d’état : 400, 405, 414, 416, 500, 501

      • CloudFront renvoie Connection: keep-alive pour les codes d’état : 403, 404, 502, 503, 504

Pour une explication détaillée sur la façon dont CloudFront traite les réponses d'erreur de votre origine, consultez Comment CloudFront traite les codes d’état HTTP 4xx et 5xx provenant de votre origine.