# Reindirizzare vecchi URL con redirect 301 e 302

> Aggiungi redirect 301, 302, 307 o 308 da un vecchio percorso del tuo sito a una nuova pagina o a un altro indirizzo. Nginx risponde prima della tua app.

La pagina **Redirect** di un sito manda i visitatori da un percorso del sito a un'altra pagina o a un altro indirizzo, per esempio da `/vecchia-pagina` a `/nuova-pagina`, o da `/shop` a `https://shop.example.com`. Nginx risponde da solo a queste richieste, prima che la tua app le veda, quindi non devi cambiare codice.

Usala quando sposti o rinomini una pagina, così vecchi link, segnalibri e risultati di ricerca continuano a funzionare.

![La pagina Redirect di un sito con regole di reindirizzamento da vecchi percorsi a nuove pagine e il loro tipo](https://ops.vimonto.com/docs-media/it/site-redirects.webp?v=161e760d "Le regole di reindirizzamento di un sito")

## Aggiungere un reindirizzamento

1. Apri il sito e clicca su **Redirect** nella sua barra laterale.
2. Clicca su **Aggiungi reindirizzamento**.
3. Compila:
   - **Da**: il percorso su questo sito, che inizia con `/`, come `/vecchia-pagina`. Viene reindirizzato solo questo percorso esatto: `/vecchia-pagina/` o `/vecchia-pagina/altro` no.
   - **A**: un percorso su questo sito, come `/nuova-pagina`, o un indirizzo completo che inizia con `https://` (o `http://`), come `https://example.com/nuova-pagina`.
   - **Tipo**: il codice di stato (vedi sotto).
4. Clicca su **Aggiungi reindirizzamento**.

La regola mostra uno stato mentre viene scritta sul server, ed è attiva quando ha finito. Clicca su **Modifica** per cambiare una regola, o su **Rimuovi** per eliminarla; il percorso torna allora a essere gestito dal sito.

Un sito può avere al massimo 100 redirect, uno per percorso. I percorsi sotto `/.well-known/` non si possono reindirizzare: servono per i certificati HTTPS.

## Quale tipo scegliere?

| Tipo | Significato | Usalo quando |
| --- | --- | --- |
| **301 · Permanente** | La pagina si è spostata definitivamente. Browser e motori di ricerca ricordano il nuovo indirizzo. | Una pagina è stata spostata o rinominata (la scelta abituale). |
| **302 · Temporaneo** | La pagina per ora è altrove. | Una pagina temporanea, come una pagina di campagna o di manutenzione. |
| **307 · Temporaneo, stesso metodo** | Come 302, ma un modulo inviato (`POST`) resta un `POST`. | Un endpoint che riceve moduli o chiamate API si è spostato per ora. |
| **308 · Permanente, stesso metodo** | Come 301, ma un `POST` resta un `POST`. | Un endpoint che riceve moduli o chiamate API si è spostato definitivamente. |

> [!TIP]
> Prova prima un nuovo redirect con **302**. I browser ricordano un **301** a lungo, quindi un errore in un redirect permanente è difficile da correggere per i visitatori che l'hanno già seguito.

## Come funzionano i redirect sul server?

Vimonto Deploy scrive tutti i redirect del sito in `redirects.conf`, nella cartella di include della configurazione [Nginx](https://ops.vimonto.com/docs/it/sites/nginx) del sito, `/etc/nginx/vimonto-conf/site-{id}/`, un blocco per regola:

```nginx
location = "/vecchia-pagina" {
    return 301 "/nuova-pagina";
}
```

La configurazione viene verificata con `nginx -t` prima che Nginx si ricarichi. Se Nginx la rifiuta, le regole precedenti vengono ripristinate e restano attive, e la regola risulta non riuscita. La cartella di include resta quando la configurazione del sito viene riscritta, quindi anche i tuoi redirect restano.

### Non tutte le regole sono attive

Quando una modifica non è riuscita, o è arrivata mentre un altro aggiornamento era ancora in corso, la pagina mostra **Non tutte le regole sono attive**. Clicca su **Applica di nuovo** per riscrivere tutte le regole sul server. L'output dell'ultimo aggiornamento è nella pagina [attività](https://ops.vimonto.com/docs/it/organization/activity).

### Queste regole non si applicano a questo sito

I redirect funzionano con la configurazione generata da Vimonto Deploy, e con la tua [configurazione Nginx personalizzata](https://ops.vimonto.com/docs/it/sites/nginx) finché mantiene la riga `include` della cartella di include del sito. Senza, la pagina mostra **Queste regole non si applicano a questo sito** e non puoi aggiungere regole. Ripristina la configurazione predefinita nella pagina **Nginx** del sito, o aggiungi di nuovo la riga di include.

## Chi può modificare i redirect?

Ogni membro può vedere i redirect. Aggiungerli, modificarli e rimuoverli richiede il permesso di gestire i siti (proprietario, amministratore, manager e sviluppatore), e il sito e il suo server devono essere attivi. Le modifiche vengono registrate nel [registro di audit](https://ops.vimonto.com/docs/it/organization/audit-log).

## Domande frequenti

### Posso reindirizzare un intero dominio, come www verso il dominio principale?

Non con una regola di reindirizzamento: una regola vale per un percorso. Reindirizzare `www` al tuo dominio è un'impostazione del dominio: vedi [redirect tra www e il dominio senza www](https://ops.vimonto.com/docs/it/sites/domains-and-ssl#redirect-tra-www-e-il-dominio-senza-www).

### Posso reindirizzare un percorso con tutte le sue sottopagine?

No. Una regola corrisponde solo al suo percorso esatto. Aggiungi una regola per ogni percorso, oppure gestisci redirect più ampi nella tua app o in un tuo file `.conf` nella cartella di include.

### I redirect funzionano su un sito con bilanciamento del carico?

Sì. Su un [load balancer](https://ops.vimonto.com/docs/it/sites/load-balancing) è il load balancer a rispondere al redirect, prima che la richiesta raggiunga un app server.

### La query string viene mantenuta?

No. Il redirect va esattamente all'indirizzo in **A**. Aggiungi lì una query string se ti serve.
