technical

Redirigez HTTP vers HTTPS

MetricSpot vérifie que les requêtes http:// sont redirigées en 301 vers https://. Sans cela, votre site a deux copies indexables — et une fenêtre de rétrogradation pour chaque nouveau visiteur.

Ce que vérifie ce contrôle

Émet une requête vers http://votredomaine.com/ et cherche une réponse 301 ou 308 avec un en-tête Location: pointant vers https://. Le contrôle échoue si la version HTTP renvoie 200 (votre site est servi en double sur du texte clair) ou ne renvoie rien du tout (le port HTTP 80 n’écoute pas).

Pourquoi c’est important

Même avec HTTPS disponible, la première requête d’un nouveau visiteur est presque toujours en clair. Il tape votredomaine.com et le navigateur tente d’abord HTTP. Sans redirection, trois choses tournent mal en même temps.

  • Deux copies indexables. Google traite http://example.com/page et https://example.com/page comme deux URL distinctes. Sans 301, elles peuvent toutes deux apparaître dans l’index, fractionnant les backlinks et le signal de classement.
  • Fenêtre de rétrogradation. Cette première requête en clair est le moment où les attaques de type sslstrip se produisent sur les réseaux hostiles. Le serveur doit refuser l’échange et forcer la mise à niveau.
  • Avertissements de contenu mixte. Si la version HTTP s’affiche réellement, chaque URL d’asset de la page qui n’est pas protocol-relative est récupérée en HTTP — et les navigateurs modernes les bloquent silencieusement.

La redirection est le pont vers HSTS. Une fois HSTS en place, les navigateurs cessent complètement d’attaquer en HTTP lors des visites suivantes — mais la redirection doit encore attraper les nouveaux visiteurs et les robots.

Comment le corriger

Écoutez sur le port 80 et renvoyez 301 vers l’équivalent HTTPS pour chaque chemin :

nginx :

server {
  listen 80;
  listen [::]:80;
  server_name example.com www.example.com;

  return 301 https://www.example.com$request_uri;
}

Apache (.htaccess) :

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Caddy — automatique. Caddy redirige HTTP→HTTPS par défaut dès qu’un bloc de site a un nom d’hôte éligible TLS.

Cloudflare — SSL/TLS → Edge Certificates → « Always Use HTTPS » → On.

Vercel / Netlify / Render / Dokku — la redirection HTTPS est activée par défaut pour tout projet avec un domaine personnalisé.

Procurez-vous d’abord un certificat. Si vous n’en avez pas déjà un, Let’s Encrypt + Certbot est gratuit et se renouvelle automatiquement :

sudo certbot --nginx -d example.com -d www.example.com

Vérifiez vous-mêmecurl -sI http://example.com/ doit imprimer HTTP/1.1 301 Moved Permanently et un en-tête Location: https://.... Toute autre réponse (200, 404, connection refused) fait échouer le contrôle.

Questions fréquentes

301 ou 308 ?

301 est le standard. 308 (RFC 7538) est la même idée mais garantit que la méthode et le corps ne sont pas réécrits à la redirection, ce qui compte pour les requêtes POST. Pour un site web typique avec du trafic GET, 301 convient et c’est ce qu’utilise par défaut chaque CDN / WAF.

Et le sous-domaine d’API — même règle ?

Oui. Tout sous-domaine servant du trafic réel doit rediriger HTTP vers HTTPS de la même manière. Si l’API n’accepte que HTTPS (pas de fallback), vous pouvez aussi configurer le serveur pour refuser entièrement le port 80 avec connection: close.

Dois-je rediriger vers www ou non-www en même temps ?

Si vous combinez les deux décisions en une seule redirection, oui — fusionnez-les pour que les visiteurs atterrissent sur l’URL canonique après un seul saut, pas deux. Voir Gardez les chaînes de redirection courtes pour le piège de l’empilement de redirections.

Sources

Dernière mise à jour 2026-05-11