

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à.

# (Facoltativo) Configurazione del reindirizzamento di una pagina Web
<a name="how-to-page-redirect"></a>

Se il bucket Amazon S3 è configurato per l'hosting di siti Web statici, è possibile configurare i reindirizzamenti per il bucket o gli oggetti in esso contenuti. Per configurare il reindirizzamento sono disponibili le opzioni riportate di seguito.

**Topics**
+ [Reindirizzamento delle richieste per l'endpoint del sito Web del bucket a un altro bucket o dominio](#redirect-endpoint-host)
+ [Configurazione delle regole di reindirizzamento per utilizzare i reindirizzamenti condizionali avanzati](#advanced-conditional-redirects)
+ [Reindirizzamento delle richieste per un oggetto](#redirect-requests-object-metadata)

## Reindirizzamento delle richieste per l'endpoint del sito Web del bucket a un altro bucket o dominio
<a name="redirect-endpoint-host"></a>

È possibile reindirizzare tutte le richieste a un endpoint di sito Web per un bucket a un altro bucket o a un dominio. Se vengono reindirizzate tutte le richieste, qualsiasi richiesta effettuata all'endpoint del sito Web viene reindirizzata al bucket o al dominio specificato. 

Ad esempio, se il dominio root è `example.com` e desideri servire richieste sia per `http://example.com` che per `http://www.example.com`, puoi creare due bucket denominati `example.com` e `www.example.com`. Successivamente, mantenere il contenuto nel bucket `example.com` e configurare l'altro bucket `www.example.com` per reindirizzare tutte le richieste al bucket `example.com`. Per ulteriori informazioni, consulta [Configurazione di un sito Web statico utilizzando un nome di dominio personalizzato](https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html).

**Per reindirizzare le richieste per un endpoint di un sito Web bucket**

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. In **Bucket** seleziona il nome del bucket da cui desideri reindirizzare le richieste (ad esempio, `www.example.com`).

1. Scegliere **Properties (Proprietà)**.

1. In **Hosting di siti Web statici**, seleziona **Modifica**.

1. Seleziona **Reindirizza richieste per un oggetto**. 

1. Nella casella **Nome host** specifica l'endpoint del sito Web per il bucket o il dominio personalizzato.

   Ad esempio, se il reindirizzamento è effettuato verso un indirizzo di dominio root, digita **example.com**.

1. Per **Protocollo**, seleziona il protocollo per le richieste reindirizzate (**nessuno**,**http** o **https**).

   Se non si specifica un protocollo, l'opzione predefinita è **nessuno**.

1. Seleziona **Salva modifiche**.

## Configurazione delle regole di reindirizzamento per utilizzare i reindirizzamenti condizionali avanzati
<a name="advanced-conditional-redirects"></a>

Con le regole di reindirizzamento avanzato, è possibile instradare le richieste in modo condizionale in base ai nomi delle chiavi degli oggetti specifici, ai prefissi nella richiesta o ai codici di risposta. Si supponga ad esempio di eliminare o rinominare un oggetto nel bucket. È possibile aggiungere una regola di routing che reindirizza la richiesta a un altro oggetto. Se si desidera rendere una cartella non disponibile, è possibile aggiungere una regola di routing per reindirizzare la richiesta a un'altra pagina Web. Inoltre, è possibile aggiungere una regola di routing per gestire le condizioni di errore instradando le richieste che restituiscono l'errore a un altro dominio dove viene elaborato l'errore.

Quando abiliti l'hosting di siti Web statici per il tuo bucket, puoi specificare facoltativamente regole di reindirizzamento avanzate. Amazon S3 ha un limite di 50 regole di routing per configurazione di sito web. Se sono necessarie più di 50 regole di routing, è possibile utilizzare l'instradamento degli oggetti. Per ulteriori informazioni, consulta [Utilizzo della console S3](#page-redirect-using-console).

Per ulteriori informazioni sulla configurazione delle regole di routing utilizzando l'API REST, consulta [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html)*Amazon Simple Storage Service API* Reference.

**Importante**  
Per creare regole di reindirizzamento nella nuova console Amazon S3, è necessario utilizzare JSON. Per gli esempi JSON, consulta [Esempi regole di reindirizzamento](#redirect-rule-examples).

**Per configurare le regole di reindirizzamento per un sito Web statico**

Per aggiungere le regole di reindirizzamento per un bucket che ha già abilitato l'hosting di siti Web statici, attieniti alla seguente procedura.

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket scegli il nome di un bucket configurato come sito web statico.

1. Scegliere **Properties (Proprietà)**.

1. In **Hosting di siti Web statici**, seleziona **Modifica**.

1. Nella casella **Redirection rules (Regole di reindirizzamento)**, immettere le regole di reindirizzamento in JSON. 

   Nella console S3 descrivi le regole utilizzando JSON. Per gli esempi JSON, consulta [Esempi regole di reindirizzamento](#redirect-rule-examples). Amazon S3 ha un limite di 50 regole di routing per configurazione di sito web.

1. Seleziona **Salva modifiche**.

### Elementi regola instradamento
<a name="configure-bucket-as-website-routing-rule-syntax"></a>

Di seguito è riportata la sintassi generale per definire le regole di routing in una configurazione di un sito Web in XML. Per configurare le regole di reindirizzamento nella nuova console S3, è necessario utilizzare JSON. Per gli esempi JSON, consulta [Esempi regole di reindirizzamento](#redirect-rule-examples).

------
#### [ JSON ]

```
[
    {
      "Condition": {
        "HttpErrorCodeReturnedEquals": "string",
        "KeyPrefixEquals": "string"
      },
      "Redirect": {
        "HostName": "string",
        "HttpRedirectCode": "string",
        "Protocol": "http"|"https",
        "ReplaceKeyPrefixWith": "string",
        "ReplaceKeyWith": "string"
      }
    }
  ]
 
Note: Redirect must each have at least one child element. You can have either ReplaceKeyPrefix with or ReplaceKeyWith but not both.
```

------
#### [ XML ]

```
<RoutingRules> =
    <RoutingRules>
         <RoutingRule>...</RoutingRule>
         [<RoutingRule>...</RoutingRule>   
         ...]
    </RoutingRules>

<RoutingRule> =
   <RoutingRule>
      [ <Condition>...</Condition> ]
      <Redirect>...</Redirect>
   </RoutingRule>

<Condition> =
   <Condition> 
      [ <KeyPrefixEquals>...</KeyPrefixEquals> ]
      [ <HttpErrorCodeReturnedEquals>...</HttpErrorCodeReturnedEquals> ]
   </Condition>
    Note: <Condition> must have at least one child element.

<Redirect> =
   <Redirect> 
      [ <HostName>...</HostName> ]
      [ <Protocol>...</Protocol> ]
      [ <ReplaceKeyPrefixWith>...</ReplaceKeyPrefixWith>  ]
      [ <ReplaceKeyWith>...</ReplaceKeyWith> ]
      [ <HttpRedirectCode>...</HttpRedirectCode> ]
   </Redirect>

Note: <Redirect> must have at least one child element. You can have either ReplaceKeyPrefix with or ReplaceKeyWith but not both.
```

------

Nella seguente tabella sono descritti gli elementi della regola di routing.


|  Nome  |  Descrizione  | 
| --- | --- | 
| RoutingRules |  Container per una raccolta di elementi RoutingRule.  | 
| RoutingRule |  Una regola che stabilisce una condizione e il reindirizzamento che viene applicato quando la condizione è soddisfatta.  Condizione: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/how-to-page-redirect.html)  | 
| Condition |  Container per descrivere una condizione che deve essere soddisfatta per l'applicazione del reindirizzamento specificato. Se la regola di routing non include una condizione, la regola viene applicata a tutte le richieste.  | 
| KeyPrefixEquals |  Il prefisso del nome della chiave dell'oggetto da cui vengono reindirizzate le richieste.  `KeyPrefixEquals` è obbligatorio se `HttpErrorCodeReturnedEquals` non è specificato. Se `KeyPrefixEquals` e `HttpErrorCodeReturnedEquals` sono specificati, devono essere entrambi veri perché la condizione sia soddisfatta.  | 
| HttpErrorCodeReturnedEquals |  Il codice di errore HTTP che deve corrispondere perché il reindirizzamento venga applicato. Se si verifica un errore e se il codice di errore corrisponde a questo valore, il reindirizzamento specificato viene applicato. `HttpErrorCodeReturnedEquals` è obbligatorio se `KeyPrefixEquals` non è specificato. Se `KeyPrefixEquals` e `HttpErrorCodeReturnedEquals` sono specificati, devono essere entrambi veri perché la condizione sia soddisfatta.  | 
| Redirect |  Elemento del container che fornisce istruzioni per il reindirizzamento della richiesta. È possibile reindirizzare le richieste a un altro host o a un'altra pagina oppure specificare un altro protocollo da utilizzare. Un `RoutingRule` deve avere un elemento `Redirect`. Un elemento `Redirect` deve contenere almeno uno dei seguenti elementi di pari livello: `Protocol`, `HostName`, `ReplaceKeyPrefixWith`, `ReplaceKeyWith` o `HttpRedirectCode`.  | 
| Protocol |  Il protocollo, `http` o `https`, da utilizzare nell'intestazione `Location` che viene restituita nella risposta.  Se viene fornito uno degli elementi di pari livello, `Protocol` non è necessario.  | 
| HostName |  Il nome dell'host da utilizzare nell'intestazione `Location` che viene restituita nella risposta. Se viene fornito uno degli elementi di pari livello, `HostName` non è necessario.  | 
| ReplaceKeyPrefixWith |  Il prefisso del nome della chiave dell'oggetto che sostituisce il valore di `KeyPrefixEquals` nella richiesta di reindirizzamento.  Se viene fornito uno degli elementi di pari livello, `ReplaceKeyPrefixWith` non è necessario. Può essere fornito solo se `ReplaceKeyWith` non è fornito.  | 
| ReplaceKeyWith |  La chiave dell'oggetto da utilizzare nell'intestazione `Location` che viene restituita nella risposta.  Se viene fornito uno degli elementi di pari livello, `ReplaceKeyWith` non è necessario. Può essere fornito solo se `ReplaceKeyPrefixWith` non è fornito.  | 
| HttpRedirectCode |  Il codice di reindirizzamento HTTP da utilizzare nell'intestazione `Location` che viene restituita nella risposta. Se viene fornito uno degli elementi di pari livello, `HttpRedirectCode` non è necessario.  | 

#### Esempi regole di reindirizzamento
<a name="redirect-rule-examples"></a>

Gli esempi seguenti illustrano le comuni attività di reindirizzamento:

**Importante**  
Per creare regole di reindirizzamento nella nuova console Amazon S3, è necessario utilizzare JSON.

**Example 1: reindirizzamento dopo la ridenominazione del prefisso di una chiave**  
Si supponga che il bucket contenga i seguenti oggetti:  
+ index.html
+ docs/article1.html
+ docs/article2.html
Si decide di rinominare la cartella da `docs/` a `documents/`. Dopo aver apportato questa modifica, occorre reindirizzare le richieste del prefisso `docs/` verso `documents/`. Ad esempio, la richiesta di `docs/article1.html` sarà reindirizzata a `documents/article1.html`.  
In questo caso, si aggiunge la seguente regola di routing alla configurazione del sito Web.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "docs/"
        },
        "Redirect": {
            "ReplaceKeyPrefixWith": "documents/"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <KeyPrefixEquals>docs/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

**Example 2: reindirizzamento delle richieste di una cartella eliminata verso una pagina**  
Si supponga l'eliminazione della cartella `images/` (ovvero, l'eliminazione di tutti gli oggetti con prefisso della chiave `images/`). È possibile aggiungere una regola di routing che reindirizza le richieste di qualsiasi oggetto con prefisso della chiave `images/` verso una pagina denominata `folderdeleted.html`.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "images/"
        },
        "Redirect": {
            "ReplaceKeyWith": "folderdeleted.html"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
       <KeyPrefixEquals>images/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyWith>folderdeleted.html</ReplaceKeyWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

**Example 3: reindirizzamento a un altro dominio con un percorso specifico**  
Si supponga di voler reindirizzare le richieste con un percorso specifico a un altro dominio. Ad esempio, si desidera reindirizzare le richieste con `/redirect/me` a `https://example.com/new/path`.  
Quando si utilizzano insieme `HostName` e `ReplaceKeyWith`, Amazon S3 crea l’URL di reindirizzamento concatenando il nome host e la chiave di sostituzione con una barra tra loro. Pertanto, non si deve includere una barra iniziale nel valore `ReplaceKeyWith`. Amazon S3 aggiunge automaticamente la barra tra il nome host e la chiave di sostituzione.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "redirect/me"
        },
        "Redirect": {
            "HostName": "example.com",
            "ReplaceKeyWith": "new/path"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <KeyPrefixEquals>redirect/me</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <HostName>example.com</HostName>
      <ReplaceKeyWith>new/path</ReplaceKeyWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```
Questa configurazione reindirizza una richiesta con `https://yourbucket.s3-website-region.amazonaws.com/redirect/me` a `https://example.com/new/path`. Si noti che `ReplaceKeyWith` è impostato su `new/path` senza barra iniziale.

**Example 4: Reindirizzamento per un errore HTTP**  
Si supponga che quando non viene trovato un oggetto richiesto, si desidera reindirizzare le richieste a un'istanza Amazon Elastic Compute Cloud (Amazon EC2). Aggiungere una regola di reindirizzamento in modo tale che, quando viene restituito un codice di stato HTTP 404 (Non trovato), il visitatore del sito venga reindirizzato a un'istanza Amazon EC2 che gestisca la richiesta.   
Il seguente esempio riporta nel reindirizzamento anche il prefisso della chiave dell'oggetto `report-404/`. Ad esempio, se la richiesta di una pagina `ExamplePage.html` restituisce un errore HTTP 404, la richiesta viene reindirizzata a una pagina `report-404/ExamplePage.html` sull'istanza Amazon EC2 specificata. Se non sono presenti regole di routing e si verifica l'errore HTTP 404, viene restituito il documento di errore specificato nella configurazione.  

```
[
    {
        "Condition": {
            "HttpErrorCodeReturnedEquals": "404"
        },
        "Redirect": {
            "HostName": "ec2-11-22-333-44.compute-1.amazonaws.com",
            "ReplaceKeyPrefixWith": "report-404/"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals >
    </Condition>
    <Redirect>
      <HostName>ec2-11-22-333-44.compute-1.amazonaws.com</HostName>
      <ReplaceKeyPrefixWith>report-404/</ReplaceKeyPrefixWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

## Reindirizzamento delle richieste per un oggetto
<a name="redirect-requests-object-metadata"></a>

Puoi reindirizzare le richieste di un oggetto a un altro oggetto o URL impostando la posizione di reindirizzamento del sito Web nei metadati dell'oggetto. Si imposta il reindirizzamento aggiungendo la proprietà `x-amz-website-redirect-location` ai metadata dell'oggetto. Nella console Nella console Amazon S3, la **Posizione di reindirizzamento del sito Web** si imposta nei metadati dell'oggetto. Se utilizzi l'[API Amazon S3](#page-redirect-using-rest-api), hai impostato `x-amz-website-redirect-location`. Il sito Web interpreta quindi l'oggetto come reindirizzamento 301. 

Per reindirizzare una richiesta a un altro oggetto, si imposta la posizione di reindirizzamento sulla chiave dell'oggetto di destinazione. Per reindirizzare una richiesta a un URL esterno, si imposta la posizione di reindirizzamento sull'URL desiderato. Per ulteriori informazioni sui metadati degli oggetti, consulta [Metadata di oggetti definiti dal sistema](UsingMetadata.md#SysMetadata).

Quando si imposta il reindirizzamento di una pagina, è possibile mantenere o eliminare il contenuto dell'oggetto di origine. Ad esempio, se nel bucket è presente un oggetto `page1.html`, è possibile reindirizzare qualsiasi richiesta per questa pagina a un altro oggetto `page2.html`. Sono disponibili due opzioni:
+ Mantenere il contenuto dell'oggetto `page1.html` e reindirizzare le richieste per la pagina.
+ Eliminare il contenuto di `page1.html` e caricare un oggetto a zero byte denominato `page1.html` per sostituire l'oggetto esistente e reindirizzare le richieste per la pagina. 

### Utilizzo della console S3
<a name="page-redirect-using-console"></a>

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nell'elenco **Bucket**, seleziona il nome di un bucket configurato come sito Web statico (ad esempio, `example.com`).

1. In **Oggetti**, seleziona l'oggetto.

1. Seleziona **Operazioni**, quindi **Modifica metadati**.

1. Seleziona **Metadati**.

1. Seleziona **Aggiungi metadati**.

1. In **Tipo**, seleziona **Definito dal sistema**.

1. In **Key**, scegli **x-amz-website-redirect-location**.

1. In **Valore**, immettere il nome della chiave dell'oggetto a cui si desidera reindirizzare, ad esempio `/page2.html`.

   Per un altro oggetto nello stesso bucket, il prefisso `/` nel valore è obbligatorio. È possibile inoltre impostare il valore su un URL esterno, ad esempi, `http://www.example.com`.

1. Seleziona **Modifica metadati**.

### Utilizzo di REST API
<a name="page-redirect-using-rest-api"></a>

Le seguenti operazioni API Amazon S3 supportano l'intestazione `x-amz-website-redirect-location` nella richiesta. Amazon S3 archivia il valore dell'intestazione nei metadati dell'oggetto come `x-amz-website-redirect-location`. 
+ [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)
+ [Avvio del caricamento in più parti](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [PUT Object - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)

Un bucket configurato per l'hosting di siti Web presenta sia l'endpoint del sito Web che l'endpoint REST. La richiesta di una pagina configurata come reindirizzamento 301 può generare i seguenti risultati, a seconda dell'endpoint della richiesta:
+ **Endpoint del sito web specifico per regione:** Amazon S3 reindirizza la richiesta della pagina in base al valore della proprietà `x-amz-website-redirect-location`. 
+ **Endpoint REST:** Amazon S3 non reindirizza la richiesta della pagina. Restituisce l'oggetto richiesto.

Per ulteriori informazioni sugli endpoint, consulta [Differenze chiave tra un endpoint del sito Web e un endpoint REST API](WebsiteEndpoints.md#WebsiteRestEndpointDiff).

Quando si imposta il reindirizzamento di una pagina, è possibile mantenere o eliminare il contenuto dell'oggetto. Supponi, ad esempio, di avere un oggetto `page1.html` nel bucket.
+ Per mantenere il contenuto di `page1.html` e reindirizzare solo le richieste della pagina, è possibile inviare una richiesta [PUT Object - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html) per creare un nuovo oggetto `page1.html` che utilizzi l'oggetto `page1.html` esistente come origine. Nella richiesta, si imposta l'intestazione `x-amz-website-redirect-location`. Al completamento della richiesta, si ottiene la pagina originale con contenuto invariato, ma Amazon S3 reindirizza qualsiasi richiesta della pagina alla posizione di reindirizzamento specificata.
+ Per eliminare il contenuto dell'oggetto `page1.html` e reindirizzare le richieste della pagina, è possibile inviare una richiesta PUT Object per caricare un oggetto da zero byte con la stessa chiave dell'oggetto: `page1.html`. Nella richiesta PUT, si imposta `x-amz-website-redirect-location` per `page1.html` sul nuovo oggetto. Al completamento della richiesta, `page1.html` non ha contenuto e le richieste vengono reindirizzate alla posizione specificata da `x-amz-website-redirect-location`.

Quando si recupera l'oggetto tramite l'operazione [GET Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html), insieme ad altri metadati dell'oggetto, Amazon S3 restituisce nella risposta l'intestazione `x-amz-website-redirect-location`.