Tous les guides de déploiement Déploiement

Comment rediriger HTTP vers HTTPS

Après avoir installé votre certificat SSL, vous devez rediriger tout le trafic HTTP vers HTTPS. Sans redirection, les visiteurs accédant à http://votredomaine.com n’utiliseront pas la connexion chiffrée — même si HTTPS est disponible.

Utilisez une redirection 301 (permanente) pour que les moteurs de recherche transfèrent tous les signaux de classement vers l’URL HTTPS.

Nginx

Ajoutez un bloc server séparé pour le port 80 qui redirige tout :

server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

Cela préserve le chemin URL complet : http://example.com/page?q=1https://example.com/page?q=1.

Après modification, testez et rechargez :

sudo nginx -t && sudo systemctl reload nginx

Apache

Option 1 : Redirection VirtualHost (recommandée)

Ajoutez à votre configuration Apache :

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    Redirect permanent / https://example.com/
</VirtualHost>

Option 2 : .htaccess (hébergement mutualisé)

Si vous n’avez pas accès à la configuration VirtualHost (hébergement mutualisé), ajoutez au .htaccess de votre site :

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

Nécessite l’activation de mod_rewrite.

Après les modifications :

sudo apachectl configtest && sudo systemctl reload apache2

Vérifier la redirection

# Devrait retourner 301 avec Location: https://...
curl -I http://votredomaine.com

Sortie attendue :

HTTP/1.1 301 Moved Permanently
Location: https://votredomaine.com/

HSTS : le double verrouillage

Après avoir confirmé que votre redirection fonctionne, ajoutez HSTS (HTTP Strict Transport Security). Cela indique aux navigateurs d’toujours utiliser HTTPS, même si l’utilisateur tape http:// :

Nginx :

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

Apache :

Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"

Commencez avec un max-age court (par ex., 300 secondes) pour tester, puis augmentez à 2 ans (63072000) une fois que vous êtes sûr que tout fonctionne.

Avertissement : Une fois que HSTS est actif avec un long max-age, les navigateurs refuseront de se connecter en HTTP même si vous supprimez HTTPS. Assurez-vous que votre configuration HTTPS est stable avant de définir une longue durée.

Modèles de redirection courants

Rediriger www vers non-www + HTTPS

# Nginx : www → non-www, HTTP + HTTPS → HTTPS
server {
    listen 80;
    listen 443 ssl;
    server_name www.example.com;
    ssl_certificate     /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;
    return 301 https://example.com$request_uri;
}

Rediriger non-www vers www + HTTPS

server {
    listen 80;
    listen 443 ssl;
    server_name example.com;
    ssl_certificate     /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;
    return 301 https://www.example.com$request_uri;
}

Rediriger un ancien domaine entier

server {
    listen 80;
    listen 443 ssl;
    server_name olddomain.com www.olddomain.com;
    ssl_certificate     /etc/ssl/old-fullchain.pem;
    ssl_certificate_key /etc/ssl/old-privkey.pem;
    return 301 https://newdomain.com$request_uri;
}

Vous avez aussi besoin d’un certificat SSL valide pour l’ancien domaine — les navigateurs doivent établir HTTPS avant de pouvoir recevoir la redirection. Utilisez un certificat SAN couvrant les deux domaines, ou un certificat séparé pour l’ancien domaine.

Dépannage

Boucle de redirection (ERR_TOO_MANY_REDIRECTS)

Cela signifie généralement que votre bloc serveur HTTPS redirige également vers HTTPS. Vérifiez que seul le bloc port 80 contient la redirection — le bloc port 443 devrait servir le contenu normalement.

Autre cause : un load balancer ou proxy (Cloudflare, AWS ALB) termine SSL et transmet HTTP à votre serveur. Votre serveur voit HTTP et redirige. Corrigez en vérifiant l’en-tête X-Forwarded-Proto :

# Derrière un proxy/load balancer
if ($http_x_forwarded_proto = "http") {
    return 301 https://$host$request_uri;
}

Anciennes URL HTTP mises en cache dans les moteurs de recherche

Après avoir configuré les redirections, informez Google du changement :

  1. Mettez à jour <link rel="canonical"> pour utiliser https://
  2. Mettez à jour les URL de votre sitemap en https://
  3. Dans Google Search Console, ajoutez la propriété HTTPS

Google mettra progressivement à jour les URL indexées en suivant les redirections 301.

Questions fréquemment posées

Dois-je rediriger www vers non-www (ou vice versa) en même temps ?

Oui. Choisissez une forme canonique et redirigez l’autre. Cela évite le contenu dupliqué dans les moteurs de recherche :

# Rediriger www vers non-www (Nginx)
server {
    listen 80;
    listen 443 ssl;
    server_name www.example.com;
    return 301 https://example.com$request_uri;
}

La redirection affectera-t-elle le SEO ?

Une redirection 301 transmet les signaux de classement à l’URL de destination. Google recommande les redirections 301 pour la migration HTTP vers HTTPS. Il peut y avoir une petite fluctuation temporaire, mais le SEO s’améliore à long terme grâce au signal de classement HTTPS.

Qu’en est-il du contenu mixte après la redirection ?

La redirection gère les URL de page, mais si votre HTML référence des ressources (images, scripts, CSS) avec des URL http://, les navigateurs les bloqueront ou afficheront des avertissements. Consultez notre guide de correction du contenu mixte.

Comment tester si ma redirection fonctionne correctement ?

# Vérifier la chaîne de redirection
curl -ILs http://votredomaine.com | grep -E '^HTTP|^Location'

Sortie attendue :

HTTP/1.1 301 Moved Permanently
Location: https://votredomaine.com/
HTTP/2 200

La première réponse devrait être 301 avec une Location HTTPS, et la réponse finale devrait être 200.

Dois-je rediriger au niveau DNS ou au niveau serveur ?

Au niveau serveur (configuration Nginx/Apache ou .htaccess). Les redirections au niveau DNS (comme les Page Rules de Cloudflare) fonctionnent mais ajoutent un saut réseau et vous donnent moins de contrôle sur le comportement de la redirection. Les redirections côté serveur sont plus rapides et plus fiables.

Articles connexes

Déploiement 2026-05-08
Comment installer un certificat SSL sur Nginx
Guide étape par étape pour installer un certificat SSL sur Nginx. Couvre l'upload des fichiers, la configuration complète du bloc serveur, les bonnes pratiques TLS, HTTP/2, HSTS, la configuration des redirections, les tests et le dépannage de 6 erreurs courantes.
Déploiement 2026-05-08
Comment installer un certificat SSL sur Apache
Guide pas à pas pour installer un certificat SSL sur Apache avec mod_ssl. Couvre le téléchargement des fichiers, la configuration VirtualHost, les bonnes pratiques TLS, HSTS, la redirection HTTP et le dépannage de 5 erreurs courantes.
Premiers pas 2026-05-08
Comment obtenir un certificat SSL gratuit (guide étape par étape)
Obtenez un certificat SSL gratuit de Let's Encrypt en 5 minutes — aucun logiciel à installer, aucun compte à créer. Guide complet couvrant 4 méthodes, les deux types de challenge, l'installation sur 6 plateformes et le dépannage.
Obtenez un certificat SSL gratuit dans votre navigateur
Aucune installation, aucun compte. Votre clé privée ne quitte jamais votre appareil.
Obtenir un certificat