Trop de redirections sur WordPress : casser la boucle.
Chrome affiche « Cette page ne fonctionne pas », suivi de « votre site vous a redirigé à de trop nombreuses reprises » et du code ERR_TOO_MANY_REDIRECTS ; Firefox parle d'une page « pas redirigée correctement ». Le site n'est pas cassé : deux réglages se contredisent et se renvoient la balle à l'infini. Il suffit de trouver lesquels.
Ce qui se passe vraiment
Une redirection, c'est le serveur qui répond « cette page est ailleurs, allez à telle adresse ». Le navigateur suit, et il en accepte une vingtaine d'affilée avant d'abandonner. La boucle naît quand deux règles veulent chacune une adresse différente : l'une envoie de http vers https, l'autre renvoie de https vers http. Ou l'une ajoute le www, l'autre l'enlève.
1. Écartez d'abord votre navigateur
Les navigateurs gardent en mémoire les redirections et les cookies. Ouvrez le site dans une fenêtre de navigation privée. S'il s'affiche, videz simplement les cookies et le cache du site dans votre navigateur habituel : la boucle est déjà corrigée côté serveur, c'est votre navigateur qui la rejoue.
2. Regardez la chaîne de redirections
Pour voir où la boucle se referme, suivez les redirections une par une. En ligne de commande :
curl -sIL --max-redirs 6 https://www.exemple.fr | grep -iE '^(HTTP|location)'
Sans terminal, un vérificateur de redirections en ligne donne le même résultat. Une boucle ressemble à ceci :
HTTP/2 301
location: http://exemple.fr/
HTTP/1.1 301 Moved Permanently
Location: https://www.exemple.fr/
HTTP/2 301
location: http://exemple.fr/
Ici, une règle ramène tout vers http://exemple.fr, l'autre vers https://www.exemple.fr. Il faut en faire taire une.
3. Les quatre causes les plus fréquentes
Cloudflare en mode SSL « Flexible »
C'est la cause n°1 quand le site passe par Cloudflare. En mode Flexible, Cloudflare parle au visiteur en HTTPS, mais à votre serveur en HTTP. Votre serveur, qui force le HTTPS, répond « passez en https ». Cloudflare transmet… en HTTP. Et ainsi de suite. La correction : dans Cloudflare, SSL/TLS → mode Full (strict), avec un certificat valide installé sur l'hébergement.
L'adresse du site ne correspond pas à la redirection du serveur
WordPress mémorise deux adresses, l'Adresse web de WordPress et l'Adresse web du site (Réglages → Général). Si elles disent http://exemple.fr alors que l'hébergement redirige vers https://www.exemple.fr, chacun renvoie vers sa version. Sans accès à l'administration, forcez la bonne adresse dans wp-config.php, au-dessus de la ligne « C’est tout, ne touchez pas à ce qui suit ! » :
define('WP_HOME', 'https://www.exemple.fr');
define('WP_SITEURL', 'https://www.exemple.fr');
Choisissez une seule forme (avec ou sans www, toujours en https) et utilisez-la partout. Une fois le site revenu, corrigez les deux champs dans les réglages et retirez ces lignes.
Le HTTPS forcé à deux endroits
Une extension de type Really Simple SSL, une règle dans le .htaccess, une option « forcer le HTTPS » chez l'hébergeur : chacune fonctionne seule, mais, à plusieurs, elles se marchent dessus, surtout derrière un proxy ou un CDN. Gardez une seule couche. Pour neutraliser une extension sans accès à l'administration, renommez son dossier dans wp-content/plugins par FTP.
WordPress ne voit pas que la connexion est en HTTPS
Derrière certains proxys ou répartiteurs de charge, le HTTPS s'arrête avant WordPress, qui croit recevoir du HTTP et redirige vers HTTPS, indéfiniment. Si votre hébergeur ou votre CDN transmet l'en-tête X-Forwarded-Proto, ces lignes, placées en haut de wp-config.php, rétablissent l'information :
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
4. Après la correction
- Videz tous les caches : extension de cache, cache de l'hébergeur, Cloudflare. Une redirection gardée en cache peut survivre à sa correction.
- Vérifiez que les quatre variantes (
httpethttps, avec et sanswww) aboutissent toutes, en une seule redirection, à la même adresse finale. - Contrôlez la page de connexion : une adresse incohérente produit aussi des connexions qui tournent en rond, voir impossible de se connecter à WordPress.
wp-config.php, ou un outil qui gère la sérialisation (WP-CLI search-replace, Better Search Replace).Quand me confier la panne
Si la chaîne de redirections reste incompréhensible, ou si la boucle revient après chaque correction : je retrace les redirections couche par couche (CDN, hébergement, .htaccess, WordPress, extensions) et je n'en laisse qu'une. Réparation de 80 à 250 € selon la complexité, diagnostic gratuit, remboursée si je n'y arrive pas.
Le site tourne en rond ?
Envoyez-moi l'adresse du site, je retrouve la boucle, sans engagement.
Demander mon diagnostic gratuit →