# Rediriger d'anciennes URL avec des redirections 301 et 302

> Ajoutez des redirections 301, 302, 307 ou 308 d'un ancien chemin de votre site vers une nouvelle page ou adresse. Nginx y répond avant votre application.

La page **Redirections** d'un site envoie les visiteurs d'un chemin du site vers une autre page ou adresse, par exemple de `/ancienne-page` vers `/nouvelle-page`, ou de `/shop` vers `https://shop.example.com`. Nginx répond lui-même à ces requêtes, avant que votre application ne les voie : aucun code à modifier.

Utilisez-la quand vous déplacez ou renommez une page, pour que les anciens liens, favoris et résultats de recherche continuent de fonctionner.

![La page Redirections d'un site avec des règles de redirection d'anciens chemins vers de nouvelles pages et leur type](https://ops.vimonto.com/docs-media/fr/site-redirects.webp?v=161e760d "Les règles de redirection d'un site")

## Ajouter une redirection

1. Ouvrez le site et cliquez sur **Redirections** dans sa barre latérale.
2. Cliquez sur **Ajouter une redirection**.
3. Renseignez :
   - **De** : le chemin sur ce site, commençant par `/`, comme `/ancienne-page`. Seul ce chemin exact est redirigé : ni `/ancienne-page/` ni `/ancienne-page/suite`.
   - **Vers** : un chemin sur ce site, comme `/nouvelle-page`, ou une adresse complète commençant par `https://` (ou `http://`), comme `https://example.com/nouvelle-page`.
   - **Type** : le code de statut (voir ci-dessous).
4. Cliquez sur **Ajouter une redirection**.

La règle affiche un statut pendant son écriture sur le serveur, et devient active une fois celle-ci terminée. Cliquez sur **Modifier** pour changer une règle, ou sur **Supprimer** pour l'effacer ; le chemin est alors de nouveau traité par le site lui-même.

Un site peut avoir jusqu'à 100 redirections, une par chemin. Les chemins sous `/.well-known/` ne peuvent pas être redirigés : ils servent aux certificats HTTPS.

## Quel type choisir ?

| Type | Signification | À utiliser quand |
| --- | --- | --- |
| **301 · Permanente** | La page a déménagé pour de bon. Les navigateurs et moteurs de recherche retiennent la nouvelle adresse. | Une page a été déplacée ou renommée (le choix habituel). |
| **302 · Temporaire** | La page est ailleurs pour l'instant. | Une page temporaire, comme une page de campagne ou de maintenance. |
| **307 · Temporaire, même méthode** | Comme 302, mais un formulaire envoyé (`POST`) reste un `POST`. | Un endpoint qui reçoit des formulaires ou des appels d'API a déménagé pour l'instant. |
| **308 · Permanente, même méthode** | Comme 301, mais un `POST` reste un `POST`. | Un endpoint qui reçoit des formulaires ou des appels d'API a déménagé pour de bon. |

> [!TIP]
> Testez d'abord une nouvelle redirection en **302**. Les navigateurs gardent une **301** en cache longtemps, si bien qu'une erreur dans une redirection permanente est difficile à corriger pour les visiteurs qui l'ont déjà suivie.

## Comment les redirections fonctionnent-elles sur le serveur ?

Vimonto Deploy écrit toutes les redirections du site dans `redirects.conf`, dans le dossier d'inclusion de la configuration [Nginx](https://ops.vimonto.com/docs/fr/sites/nginx) du site, `/etc/nginx/vimonto-conf/site-{id}/`, un bloc par règle :

```nginx
location = "/ancienne-page" {
    return 301 "/nouvelle-page";
}
```

La configuration est vérifiée avec `nginx -t` avant le rechargement de Nginx. Si Nginx la refuse, les règles précédentes sont remises en place et restent actives, et la règle s'affiche en échec. Le dossier d'inclusion est conservé chaque fois que la configuration du site est réécrite, vos redirections aussi.

### Toutes les règles ne sont pas actives

Quand une modification a échoué, ou est arrivée pendant qu'une autre mise à jour tournait encore, la page affiche **Toutes les règles ne sont pas actives**. Cliquez sur **Appliquer à nouveau** pour réécrire toutes les règles sur le serveur. La sortie de la dernière mise à jour se trouve sur la page [activité](https://ops.vimonto.com/docs/fr/organization/activity).

### Ces règles ne s'appliquent pas à ce site

Les redirections fonctionnent avec la configuration générée par Vimonto Deploy, et avec votre [propre configuration Nginx](https://ops.vimonto.com/docs/fr/sites/nginx) tant qu'elle garde la ligne `include` du dossier d'inclusion du site. Sans elle, la page affiche **Ces règles ne s'appliquent pas à ce site** et vous ne pouvez pas ajouter de règles. Restaurez la configuration par défaut sur la page **Nginx** du site, ou rajoutez la ligne d'inclusion.

## Qui peut modifier les redirections ?

Chaque membre peut voir les redirections. Les ajouter, les modifier et les supprimer nécessite la permission de gérer les sites (propriétaire, administrateur, manager et développeur), et le site et son serveur doivent être actifs. Les modifications sont enregistrées dans le [journal d'audit](https://ops.vimonto.com/docs/fr/organization/audit-log).

## Questions fréquentes

### Puis-je rediriger tout un domaine, comme www vers le domaine principal ?

Pas avec une règle de redirection : une règle vaut pour un chemin. Rediriger `www` vers votre domaine est un réglage du domaine : voir [redirections entre www et le domaine nu](https://ops.vimonto.com/docs/fr/sites/domains-and-ssl#redirections-entre-www-et-le-domaine-nu).

### Puis-je rediriger un chemin avec toutes ses sous-pages ?

Non. Une règle ne correspond qu'à son chemin exact. Ajoutez une règle par chemin, ou gérez les redirections plus larges dans votre application ou dans votre propre fichier `.conf` du dossier d'inclusion.

### Les redirections fonctionnent-elles sur un site à charge répartie ?

Oui. Sur un [load balancer](https://ops.vimonto.com/docs/fr/sites/load-balancing), c'est le load balancer qui répond à la redirection, avant que la requête n'atteigne un serveur d'application.

### La chaîne de requête est-elle conservée ?

Non. La redirection va exactement à l'adresse indiquée dans **Vers**. Ajoutez-y une chaîne de requête si vous en avez besoin.
