Creación de una página de error personalizada para códigos de estado HTTP específicos - Amazon CloudFront

Creación de una página de error personalizada para códigos de estado HTTP específicos

Si prefiere mostrar un mensaje de error personalizado en lugar del mensaje predeterminado (por ejemplo, una página que utiliza el mismo formato que el resto del sitio web), puede hacer que CloudFront devuelva al lector un objeto (por ejemplo, un archivo HTML) que contenga el mensaje de error personalizado.

Para especificar el archivo que desea devolver y los errores por los que se debe devolver este archivo, debe actualizar la distribución de CloudFront y especificar esos valores. Para obtener más información, consulte Configuración del comportamiento de respuestas de error.

Por ejemplo, la siguiente es una página de error personalizada:

Captura de pantalla de un ejemplo de página 404 de AWS personalizada.

Puede especificar un objeto diferente por código de estado HTTP admitido o el mismo objeto para todos los códigos de estado admitidos. Puede elegir especificar páginas de error personalizadas para algunos códigos de estado y no para otros.

Los objetos que ofrece a través de CloudFront pueden no estar disponibles por diversas razones. Estas se dividen en dos amplias categorías:

  • Errores de cliente, que indican un problema con la solicitud. Por ejemplo, un objeto con el nombre especificado no está disponible o el usuario no tiene los permisos necesarios para obtener un objeto en el bucket de Amazon S3. Cuando se produce un error de cliente, el origen devuelve a CloudFront un código de estado HTTP en el intervalo de los 4xx.

  • Errores de servidor, que indican un problema con el servidor de origen. Por ejemplo, el servidor HTTP está ocupado o no disponible. Cuando se produce un error de servidor, el servidor de origen devuelve a CloudFront un código de estado HTTP en el intervalo de los 5xx o CloudFront no obtiene respuesta del servidor de origen durante un periodo determinado y supone un código de estado 504 (tiempo de espera de gateway agotado).

Los códigos de estado HTTP para los que CloudFront puede devolver una página de error personalizada son:

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

  • 500, 501, 502, 503, 504

    Notas
    • Si CloudFront detecta que la solicitud puede no ser segura, devuelve un error 400 (Solicitud incorrecta) en lugar de una página de error personalizada.

    • Puede crear una página de error personalizada para el código de estado HTTP 416 (Intervalo solicitado no puede ser satisfecho) y puede cambiar el código de estado HTTP que CloudFront proporciona a los lectores cuando el origen devuelve un código de estado 416 a CloudFront. Para obtener más información, consulte Cambio de códigos de respuesta devueltos por CloudFront. Sin embargo, CloudFront no almacena en caché las respuestas de los códigos de estado 416, así que, aunque especifique un valor para Error Caching Minimum TTL (TTL mínimo de almacenamiento de errores en caché) para el código de estado 416, CloudFront no lo utiliza.

    • En algunos casos, CloudFront no devuelve una página de error personalizada para el código de estado HTTP 503, incluso si configura CloudFront para hacerlo. Si el código de error de CloudFront es Capacity Exceeded o Limit Exceeded, CloudFront devuelve un código de estado 503 al lector sin utilizar la página de error personalizada.

    • Si ha creado una página de error personalizada, CloudFront devolverá Connection: close o Connection: keep-alive para los siguientes códigos de respuesta:

      • CloudFront devuelve Connection: close para los códigos de estado: 400, 405, 414, 416, 500 y 501

      • CloudFront devuelve Connection: keep-alive para los códigos de estado 403, 404, 502, 503 y 504

Para obtener una explicación detallada acerca de cómo CloudFront gestiona las respuestas de error del origen, consulte Procesamiento de CloudFront de los códigos de estado HTTP 4xx y 5xx desde el origen.