Configurer une redirection
Une redirection envoie le navigateur d'une URL vers une autre. Bien utilisée, elle unifie le nom canonique du site (www ou sans www) et préserve le référencement. Mal utilisée, elle crée des boucles, casse les formulaires ou cache une erreur pendant des mois.
1. Choisir le code HTTP
| Code | Signification | Usage |
|---|---|---|
301 |
déplacé définitivement | canonicalisation, migration stable |
302 |
trouvé, temporaire | test, maintenance courte |
307 |
temporaire, méthode conservée | API, formulaires |
308 |
permanent, méthode conservée | migration d'API |
Un 301 est mis en cache par les navigateurs et les moteurs de recherche. Ne l'utilisez pas pendant un test : un mauvais 301 peut rester actif longtemps chez les visiteurs. Pour une bascule à vérifier, commencez par 302.
2. Utiliser l'option du panneau
Si KeyHelp propose une redirection par domaine ou par chemin, préférez-la : elle est appliquée avant vos fichiers et évite les erreurs de .htaccess. Renseignez l'URL source, l'URL cible et le code. Vérifiez que la cible inclut le bon schéma (https://) et le bon nom d'hôte.
Pour une redirection globale www vers sans www, l'option du panneau suffit souvent. Sinon, passez à la configuration Apache.
3. Écrire la règle Apache
Dans .htaccess, à la racine du site :
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]%1 reprend la capture de la condition, $1 celle de la règle. La règle conserve le chemin demandé : /contact reste /contact, sans repasser par l'accueil.
Pour forcer HTTPS puis supprimer www, enchaînez deux règles sans les fusionner :
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]La première passe en HTTPS en conservant le nom demandé ; la seconde ne s'applique qu'une fois HTTPS actif, puis retire www. Cette séparation évite qu'une même règle se réapplique à sa propre cible.
4. Éviter les boucles
Une boucle survient quand la règle s'applique aussi à la cible. Vérifiez toujours :
- que la cible ne correspond pas à la condition ;
- que le schéma détecté correspond à la réalité (proxy TLS) ;
- qu'aucune autre règle ne redirige en sens inverse ;
- que le sous-domaine et le domaine principal ne se renvoient pas l'un à l'autre.
Ne redirigez pas un POST vers une page qui n'accepte que GET sans le vouloir : utilisez 307/308 si la méthode doit être conservée.
5. Vérifier
curl -I http://www.votre-domaine.fr/contact
curl -IL http://votre-domaine.fr/contactLa première commande doit renvoyer 301 avec un Location en https://votre-domaine.fr/contact. La seconde suit la chaîne : une seule redirection suffit, pas trois. Testez aussi une page inexistante et un formulaire.
Terminez par un contrôle dans un navigateur en navigation privée, puis supprimez les règles de test. Conservez une note de la règle active : dans six mois, personne ne se souviendra pourquoi elle existe.
Publicité
Cet article vous a-t-il aidé ?
À lire aussi
- Créer un sous-domaineDNS, hébergement et certificat : les trois couches d'un sous-domaine fonctionnel.
- Créer une adresse e-mailBoîte dans KeyHelp, MX, SPF, DKIM, DMARC et configuration du client mail.
- Activer le SSL sur son hébergementÉmettre un certificat Let's Encrypt, rediriger HTTPS et corriger le contenu mixte.