

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Generazione di risposte di errore personalizzate
<a name="GeneratingCustomErrorResponses"></a>

Se un oggetto tramite il quale stai servendo non CloudFront è disponibile per qualche motivo, il tuo server web in genere restituisce un codice di stato HTTP pertinente CloudFront per indicarlo. Ad esempio, se un visualizzatore richiede un URL non valido, il server Web restituisce un codice di stato HTTP 404 (Not Found) a CloudFront, quindi lo CloudFront restituisce al visualizzatore. Invece di utilizzare questa risposta di errore predefinita, è possibile crearne una personalizzata che CloudFront ritorni al visualizzatore.

Se configurate CloudFront per restituire una pagina di errore personalizzata per un codice di stato HTTP ma la pagina di errore personalizzata non è disponibile, CloudFront restituisce al visualizzatore il codice di stato CloudFront ricevuto dall'origine che contiene le pagine di errore personalizzate. Ad esempio, supponiamo che l'origine personalizzata restituisca un codice di stato 500 e che tu abbia configurato CloudFront per ottenere una pagina di errore personalizzata per un codice di stato 500 da un bucket Amazon S3. Tuttavia, qualcuno ha eliminato accidentalmente la pagina di errore personalizzata dal tuo bucket Amazon S3. CloudFront restituisce un codice di stato HTTP 404 (Not Found) al visualizzatore che ha richiesto l'oggetto.

Quando CloudFront restituisci una pagina di errore personalizzata a un visualizzatore, paghi i CloudFront costi standard per la pagina di errore personalizzata, non i costi per l'oggetto richiesto. Per ulteriori informazioni sugli CloudFront addebiti, consulta la pagina [ CloudFrontdei prezzi di Amazon](https://aws.amazon.com/cloudfront/pricing/).

**Topics**
+ [Configurazione del comportamento di risposta agli errori](custom-error-pages-procedure.md)
+ [Creazione di una pagina di errore personalizzata per codici di stato HTTP specifici](creating-custom-error-pages.md)
+ [Archiviazione degli oggetti e delle pagine di errore personalizzate in diverse sedi](custom-error-pages-different-locations.md)
+ [Modificare i codici di risposta restituiti da CloudFront](custom-error-pages-response-code.md)
+ [Controlla per quanto tempo CloudFront memorizza gli errori nella cache](custom-error-pages-expiration.md)

# Configurazione del comportamento di risposta agli errori
<a name="custom-error-pages-procedure"></a>

Sono disponibili diverse opzioni per gestire la CloudFront risposta in caso di errore. Per configurare risposte di errore personalizzate, puoi utilizzare la CloudFront console, l' CloudFront API o CloudFormation. Indipendentemente dal modo in cui decidi di aggiornare la configurazione, prendi in considerazione i seguenti suggerimenti e consigli:
+ Salva le tue pagine di errore personalizzate in una posizione accessibile a CloudFront. Ti consigliamo di memorizzarle in un bucket Amazon S3 e di [non conservarle nello stesso percorso del resto del tuo sito Web o del contenuto dell'applicazione](custom-error-pages-different-locations.md). Se memorizzi le pagine di errore personalizzate sulla stessa origine del sito Web o dell'applicazione e l'origine inizia a restituire errori 5xx, non CloudFront puoi ottenere le pagine di errore personalizzate perché il server di origine non è disponibile. Per ulteriori informazioni, consulta [Archiviazione degli oggetti e delle pagine di errore personalizzate in diverse sedi](custom-error-pages-different-locations.md).
+ Assicurati che CloudFront disponga dell'autorizzazione per ottenere le tue pagine di errore personalizzate. Se le pagine di errore personalizzate sono archiviate in Amazon S3, le pagine devono essere accessibili pubblicamente oppure è necessario configurare un [controllo di accesso all' CloudFront origine (OAC](private-content-restricting-access-to-s3.md)). Se le pagine di errore personalizzate sono memorizzate in un'origine personalizzata, le pagine devono essere accessibili pubblicamente.
+ (Facoltativo) Se lo desideri, configura l'origine per aggiungere una intestazione `Cache-Control` o `Expires` insieme alle pagine di errore personalizzate. Puoi anche utilizzare l'impostazione **Error Caching Minimum TTL** per controllare per quanto tempo vengono memorizzate nella CloudFront cache le pagine di errore personalizzate. Per ulteriori informazioni, consulta [Controlla per quanto tempo CloudFront memorizza gli errori nella cache](custom-error-pages-expiration.md).

## Configurazione delle risposte di errore personalizzate
<a name="custom-error-pages-console"></a>

Per configurare risposte di errore personalizzate nella CloudFront console, è necessario disporre di una distribuzione. CloudFront Nella console, le impostazioni di configurazione per le risposte personalizzate agli errori sono disponibili solo per le distribuzioni esistenti. Per informazioni su come creare una distribuzione, consulta [Inizia con una distribuzione CloudFront standard](GettingStarted.SimpleDistribution.md).

------
#### [ Console ]

**Per configurare le risposte personalizzate agli errori (console)**

1. Accedi Console di gestione AWS e apri la pagina **Distribuzioni** nella CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v4/home#distributions](https://console.aws.amazon.com/cloudfront/v4/home#distributions).

1. Nell'elenco delle distribuzioni, scegli la distribuzione da aggiornare.

1. Seleziona la scheda **Pagine errori** , quindi **Crea risposta personalizzata all'errore**.

1. Immetti i valori applicabili. Per ulteriori informazioni, consulta [Custom Error Pages and Error Caching (Pagine di errore personalizzate e caching errori)](DownloadDistValuesErrorPages.md).

1. Dopo aver immesso i valori desiderati, seleziona **Crea**.

------
#### [ CloudFront API or CloudFormation ]

Per configurare risposte di errore personalizzate con l' CloudFront API oppure CloudFormation, usa il `CustomErrorResponse` tipo in una distribuzione. Per ulteriori informazioni, consulta gli argomenti seguenti:
+ [AWS::CloudFront::Distribution CustomErrorResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html) nella *Guida per l'utente di AWS CloudFormation *
+ [CustomErrorResponse](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CustomErrorResponse.html)nell'*Amazon CloudFront API Reference*

------

# Creazione di una pagina di errore personalizzata per codici di stato HTTP specifici
<a name="creating-custom-error-pages"></a>

Se preferisci visualizzare un messaggio di errore personalizzato anziché quello predefinito, ad esempio una pagina che utilizza la stessa formattazione del resto del sito Web, puoi fare in modo che venga CloudFront restituito al visualizzatore un oggetto (come un file HTML) che contiene il tuo messaggio di errore personalizzato.

Per specificare il file che desideri restituire e gli errori per i quali il file deve essere restituito, aggiorni la distribuzione per specificare tali valori. CloudFront Per ulteriori informazioni, consulta [Configurazione del comportamento di risposta agli errori](custom-error-pages-procedure.md).

Di seguito è riportata una pagina di errore personalizzata di esempio:

![\[Schermata di un esempio di pagina AWS 404 personalizzata.\]](http://docs.aws.amazon.com/it_it/AmazonCloudFront/latest/DeveloperGuide/images/custom-error-page-aws-404-example.png)


Puoi specificare un oggetto differente per ciascun codice di stato HTTP supportato, oppure puoi utilizzare lo stesso oggetto per tutti i codici di stato supportati. Puoi decidere di specificare pagine di errore personalizzate per alcuni codici di stato e non per altri.

Gli oggetti tramite i quali stai servendo CloudFront possono non essere disponibili per diversi motivi. Tali opzioni rientrano in due categorie generali:
+ Gli *errori del client* indicano un problema con la richiesta. Ad esempio, l'oggetto con il nome specificato non è disponibile oppure l'utente non possiede le autorizzazioni necessarie per ottenere un oggetto nel bucket Amazon S3. Quando si verifica un errore del client, l'origine restituisce un codice di stato HTTP nell'intervallo 4xx a CloudFront.
+ Gli *errori del server* indicano un problema con il server di origine. Ad esempio, il server HTTP è occupato o non disponibile. Quando si verifica un errore del server, il server di origine restituisce un codice di stato HTTP nell'intervallo 5xx o CloudFront non riceve una risposta dal server di origine per un certo periodo di tempo e presuppone un codice di stato 504 (Gateway Timeout). CloudFront

I codici di stato HTTP per i quali è CloudFront possibile restituire una pagina di errore personalizzata includono i seguenti:
+ 400, 403, 404, 405, 414, 416
+ 500, 501, 502, 503, 504
**Note**  
Se CloudFront rileva che la richiesta potrebbe non essere sicura, CloudFront restituisce un errore 400 (Bad Request) anziché una pagina di errore personalizzata.
Puoi creare una pagina di errore personalizzata per il codice di stato HTTP 416 (Requested Range Not Satisfiable) e modificare il codice di stato HTTP che CloudFront restituisce agli utenti quando l'origine restituisce un codice di stato 416 a. CloudFront Per ulteriori informazioni, consulta [Modificare i codici di risposta restituiti da CloudFront](custom-error-pages-response-code.md). Tuttavia, CloudFront non memorizza nella cache le risposte del codice di stato 416, quindi anche se specifichi un valore per **Error Caching Minimum TTL** per il codice di stato 416, non lo utilizza. CloudFront 
In alcuni casi, CloudFront non restituisce una pagina di errore personalizzata per il codice di stato HTTP 503 anche se si configura in tal senso. CloudFront Se il codice CloudFront di errore è `Capacity Exceeded` o`Limit Exceeded`, CloudFront restituisce un codice di stato 503 al visualizzatore senza utilizzare la pagina di errore personalizzata.
Se hai creato una pagina di errore personalizzata, CloudFront restituirà `Connection: close` o `Connection: keep-alive` per i seguenti codici di risposta:  
CloudFront restituzioni `Connection: close` per i codici di stato: 400, 405, 414, 416, 500, 501
CloudFront restituisce `Connection: keep-alive` i codici di stato: 403, 404, 502, 503, 504

Per una spiegazione dettagliata di come vengono CloudFront gestite le risposte di errore provenienti dall'origine, consulta. [In che modo CloudFront elabora i codici di stato HTTP 4xx e 5xx dalla tua origine](HTTPStatusCodes.md)

# Archiviazione degli oggetti e delle pagine di errore personalizzate in diverse sedi
<a name="custom-error-pages-different-locations"></a>

Se desideri archiviare gli oggetti e le pagine di errore personalizzate in posizioni differenti, la tua distribuzione deve includere un comportamento cache per il quale le seguenti condizioni sono vere:
+ Il valore di **Path Pattern (Modello di percorso)** corrisponde al percorso dei tuoi messaggi di errore personalizzati. Ad esempio, hai salvato pagine di errore personalizzate per errori 4xx in un bucket Amazon S3 in una directory denominata `/4xx-errors`. La tua distribuzione deve includere un comportamento cache per il quale il modello di percorso instrada le richieste per le pagine di errore personalizzate a quella posizione, ad esempi, `/4xx-errors/*`.
+ Il valore di **Origin (Origine)** specifica il valore di **Origin ID (ID origine)** per l'origine che contiene le tue pagine di errore personalizzate.

Per ulteriori informazioni, consulta [Cache Behavior Settings (Impostazioni del comportamento della cache)](DownloadDistValuesCacheBehavior.md).

# Modificare i codici di risposta restituiti da CloudFront
<a name="custom-error-pages-response-code"></a>

Puoi configurare CloudFront in modo da restituire al visualizzatore un codice di stato HTTP diverso da quello CloudFront ricevuto dall'origine. Ad esempio, se la tua origine restituisce un codice di stato 500 aCloudFront, potresti CloudFront voler restituire una pagina di errore personalizzata e un codice di stato 200 (OK) al visualizzatore. Esistono diversi motivi per cui potresti voler restituire CloudFront al visualizzatore un codice di stato diverso da quello a cui è stato restituito l'origineCloudFront:
+ Alcuni dispositivi Internet (ad esempio, alcuni firewall e proxy aziendali) intercettano i codici HTTP 4xx e 5xx e impediscono la restituzione della risposta al visualizzatore. In questo scenario, se si sostituisce `200`, la risposta non viene intercettata.
+ Se non ti interessa distinguere tra diversi errori del client o del server, puoi specificare `400` o `500` come valore CloudFront restituito per tutti i codici di stato 4xx o 5xx.
+ Potresti scegliere di restituire un codice di stato `200` (OK) e un sito Web statico, in modo che i tuoi clienti non sappiano che il sito Web è inaccessibile.

Se abiliti [i log CloudFront standard](AccessLogs.md) e configuri CloudFront per modificare il codice di stato HTTP nella risposta, il valore della `sc-status` colonna nei log contiene il codice di stato specificato. Tuttavia, il valore della colonna `x-edge-result-type` non ne è interessato. Contiene il tipo di risultato della risposta dall'origine. Ad esempio, supponete di configurare CloudFront la restituzione di un codice di stato `200` al visualizzatore quando l'origine restituisce `404` (Not Found) a. CloudFront Quando l'origine risponde a una richiesta con un codice di stato `404`, il valore nella colonna `sc-status` nel log sarà `200`, ma il valore nella colonna `x-edge-result-type` sarà `Error`.

È possibile CloudFront configurare la restituzione di uno dei seguenti codici di stato HTTP insieme a una pagina di errore personalizzata:
+ 200
+ 400, 403, 404, 405, 414, 416
+ 500, 501, 502, 503, 504

# Controlla per quanto tempo CloudFront memorizza gli errori nella cache
<a name="custom-error-pages-expiration"></a>

CloudFront memorizza nella cache le risposte agli errori per una durata predefinita di 10 secondi. CloudFront invia quindi la richiesta successiva per l'oggetto all'origine per verificare se il problema che ha causato l'errore è stato risolto e l'oggetto richiesto è disponibile.

È possibile specificare la durata della memorizzazione nella cache degli errori, ovvero l'**Error Caching Minimum TTL, per ogni codice di stato 4xx e 5xx inserito nella cache**. CloudFront Per ulteriori informazioni, consulta [codici di stato HTTP 4xx e 5xx che vengono memorizzati nella cache CloudFront](HTTPStatusCodes.md#HTTPStatusCodes-cached-errors). Quando specifichi una durata, è importante prestare attenzione alle seguenti informazioni:
+ Se specifichi una durata di memorizzazione nella cache degli errori breve, inoltra più richieste all'origine rispetto a quando specifichi una durata più lunga. CloudFront Per gli errori 5xx, questo potrebbe aggravare il problema che ha causato inizialmente l'errore del server di origine.
+ Quando l'origine restituisce un errore per un oggetto, CloudFront risponde alle richieste relative all'oggetto con la risposta all'errore o con la pagina di errore personalizzata fino allo scadere del periodo di memorizzazione nella cache degli errori. Se specificate una lunga durata di memorizzazione nella cache degli errori, CloudFront potreste continuare a rispondere alle richieste con una risposta di errore o con la pagina di errore personalizzata per un lungo periodo dopo che l'oggetto sarà nuovamente disponibile.

**Nota**  
Puoi creare una pagina di errore personalizzata per il codice di stato HTTP 416 (Impossibile attenersi all'intervallo richiesto) e modificare il codice di stato HTTP che CloudFront restituisce ai visualizzatori quando il server di origine restituisce a CloudFront un codice di stato 416. Per ulteriori informazioni, consulta [Modificare i codici di risposta restituiti da CloudFront](custom-error-pages-response-code.md). Tuttavia, CloudFront non memorizza nella cache le risposte del codice di stato 416, quindi anche se si specifica un valore per **Error Caching Minimum TTL** per il codice di stato 416, non lo utilizza. CloudFront

Se desideri controllare per quanto tempo CloudFront memorizza nella cache gli errori per i singoli oggetti, puoi configurare il tuo server di origine per aggiungere l'intestazione applicabile alla risposta di errore per quell'oggetto.

**Se l'origine aggiunge una `Cache-Control: s-maxage` direttiva `Cache-Control: max-age` or o un'`Expires`intestazione, CloudFront memorizza nella cache le risposte di errore per il valore maggiore tra il valore nell'intestazione o il TTL minimo di Error Caching.**

**Nota**  
I valori `Cache-Control: max-age` e `Cache-Control: s-maxage` non possono essere maggiori del valore **Maximum TTL** (TTL massimo) impostato per il comportamento cache per il quale la pagina di errore viene recuperata.

Se l'origine aggiunge una `Cache-Control: private` direttiva `Cache-Control: no-store``Cache-Control: no-cache`, o per i codici di errore 404, 410, 414 o 501, CloudFront non memorizza nella cache la risposta all'errore. **Per tutti gli altri codici di errore, CloudFront ignora le `private` direttive `no-store``no-cache`, e e memorizza nella cache la risposta di errore per il valore di Error Caching Minimum TTL.**

**Se l'origine aggiunge altre `Cache-Control` direttive o non aggiunge intestazioni, memorizza nella cache le risposte di errore per il valore di Error CloudFront Caching Minimum TTL.**

Se il periodo di scadenza per un codice di stato 4xx o 5xx per un oggetto è più lungo rispetto a quello che desideri attendere, puoi invalidare il codice di errore memorizzato nella cache utilizzando l'URL dell'oggetto richiesto. Se il server di origine restituisce un messaggio di errore per più oggetti, devi invalidare ogni oggetto separatamente. Per ulteriori informazioni sull'invalidamento degli oggetti, consulta [Invalidare i file per rimuovere il contenuto](Invalidation.md).

Se hai abilitato la memorizzazione nella cache per un'origine di bucket S3 e configuri un errore di memorizzazione nella cache di almeno 0 secondi nella tua CloudFront distribuzione, vedrai comunque un errore di memorizzazione nella cache TTL minimo di 1 secondo per gli errori di origine S3. CloudFront lo fa per proteggere la tua origine dagli attacchi S. DDo Non si applica ad altri tipi di origini.