CHECKCYBER

Forcer la redirection HTTP vers HTTPS (Apache & nginx)

Beaucoup de sites installent un certificat… puis laissent la version http:// accessible en parallèle. C'est une erreur subtile mais courante : le site « marche » en HTTPS, alors on croit la migration terminée. Pourtant, un visiteur qui tape votre adresse sans « https », clique sur un ancien lien ou suit un favori obsolète charge encore la page non chiffrée.

Cette page en clair est vulnérable à l'interception et à la modification en transit, et elle crée du contenu dupliqué aux yeux de Google. La solution est une redirection permanente (301) qui bascule automatiquement tout le trafic HTTP vers son équivalent HTTPS. C'est l'étape qui scelle réellement votre passage au HTTPS.

Pourquoi une redirection 301 ?

Le code 301 (« déplacé de façon permanente ») indique aux navigateurs et à Google que la version HTTPS est désormais l'adresse officielle et définitive. Cela évite le contenu dupliqué côté SEO (une même page accessible en http:// et https:// dilue votre référencement) et garantit que personne n'atterrit sur la version non sécurisée.

Le 302 (« temporaire »), lui, n'est pas adapté : il indique un déplacement provisoire, les moteurs continuent d'indexer l'ancienne URL et ne transfèrent pas pleinement la « valeur SEO ». Pour une migration HTTPS, c'est bien le 301 qu'il faut. Une fois la redirection en place et testée, activez HSTS pour que les navigateurs basculent directement en HTTPS sans même tenter le passage par HTTP.

La configuration

Placez ces règles au plus haut de votre configuration, avant les autres règles de réécriture, pour que la redirection s'applique en premier.

Apache — .htaccess (hébergement mutualisé type o2switch)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
nginx
server {
    listen 80;
    server_name exemple.com www.exemple.com;
    return 301 https://$host$request_uri;
}
WordPress
# 1. Réglages → Général : passez « Adresse web (URL) » en https://
# 2. Ajoutez la règle .htaccess ci-dessus pour forcer la redirection serveur

Vérifier et éviter la boucle de redirection

Testez chaque variante : http://exemple.com et http://www.exemple.com doivent toutes deux aboutir, via une seule redirection 301, à votre version HTTPS canonique. En ligne de commande, curl -I http://exemple.com doit renvoyer « 301 » et un en-tête Location en https://.

Piège fréquent derrière un proxy ou un CDN (Cloudflare, etc.) : le serveur reçoit la requête en HTTP en interne même quand le visiteur est en HTTPS, ce qui provoque une boucle de redirection infinie. Dans ce cas, testez l'en-tête X-Forwarded-Proto plutôt que %{HTTPS}, ou réglez le mode SSL du CDN sur « Full ».

[ FAQ // QUESTIONS FRÉQUENTES ]

Dois-je rediriger avant ou après avoir installé le certificat ?

Après. Installez et vérifiez d'abord que la version HTTPS fonctionne parfaitement, sinon la redirection enverrait vos visiteurs vers une page en erreur de certificat, ce qui est pire que l'absence de redirection.

Redirection 301 ou 302 ?

301 (permanente) pour HTTP→HTTPS : c'est un changement définitif que les moteurs de recherche doivent mémoriser et dont ils transfèrent la valeur SEO. La 302 (temporaire) n'est pas adaptée ici et nuirait à votre référencement.

J’ai une boucle de redirection, que faire ?

C'est presque toujours dû à un CDN ou un proxy qui transmet la requête en HTTP au serveur d'origine. Réglez le mode SSL du CDN sur « Full » (chiffrement de bout en bout), ou basez votre condition de redirection sur l'en-tête X-Forwarded-Proto au lieu de %{HTTPS}.

[ PASSEZ À L’ACTION ]

Votre site est-il concerné ?

Lancez un audit de surface gratuit et obtenez en quelques secondes la liste exacte de vos failles, avec le correctif pour chacune. Anonyme, sans inscription.

▶ Auditer mon site

[ À LIRE AUSSI ]

[ CheckCyber // MIS À JOUR LE 2026-06-29 ]