Was bedeutet ERR_TOO_MANY_REDIRECTS?
Der Fehler ERR_TOO_MANY_REDIRECTS tritt auf, wenn der Browser beim Aufruf einer Seite in eine endlose Weiterleitungsschleife gerät. Der Browser setzt in der Regel nach 20 Weiterleitungen eine Obergrenze, bricht die Schleife ab und zeigt diesen Fehler an.
Nach einer SSL-Installation ist dieser Fehler sehr verbreitet, denn wenn die HTTP-→-HTTPS-Weiterleitung und die Stufen zwischen Server, CDN und Anwendung nicht korrekt konfiguriert sind, kann eine Endlosschleife entstehen.
Typisches Szenario einer Weiterleitungsschleife
Ein Nutzer ruft http://example.com auf:
- Server: leitet HTTP → HTTPS weiter →
https://example.com - CDN/Proxy: reicht HTTPS → als HTTP an den Origin weiter
- Server: leitet HTTP → HTTPS weiter →
https://example.com - ... Endlosschleife
Ursache 1: Falscher SSL-Modus in Cloudflare
Die häufigste Ursache. Steht der SSL-Modus von Cloudflare auf „Flexible“, wird zwischen Cloudflare und dem Besucher HTTPS verwendet, Cloudflare verbindet sich mit dem Origin-Server jedoch über HTTP. Gibt es auf dem Server eine HTTP→HTTPS-Weiterleitung, entsteht eine Schleife.
Lösung
- Stellen Sie den SSL-Modus von Cloudflare auf „Full“ oder „Full (Strict)“
- Full: Auf dem Origin genügt ein beliebiges SSL-Zertifikat (auch self-signed)
- Full (Strict): Auf dem Origin ist ein gültiges SSL-Zertifikat erforderlich (empfohlen)
Ändern Sie den SSL-Modus unter Cloudflare Dashboard → SSL/TLS → Overview.
Ursache 2: Kollidierende Regeln in Nginx/Apache
Gibt es Weiterleitungsregeln sowohl im Server-Block als auch in der .htaccess-Datei, können sie miteinander kollidieren.
Lösung für Nginx
# FALSCH: Schleife im selben server-Block
server {
listen 443 ssl;
server_name example.com;
# Diese Regel greift sogar unter HTTPS!
if ($scheme = "http") {
return 301 https://$host$request_uri;
}
}
# RICHTIG: Getrennte server-Blöcke
server {
listen 80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
# ... SSL-Konfiguration
}
Lösung für Apache
# FALSCH: Regel, die eine Schleife erzeugt
RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# RICHTIG: HTTPS-Prüfung ergänzt
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# ODER: X-Forwarded-Proto prüfen (hinter Proxy/CDN)
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Ursache 3: Problem mit der WordPress-Site-URL
Sind in WordPress „Site URL“ und „WordPress URL“ auf HTTP eingestellt, leitet WordPress selbst auf HTTP weiter.
Lösung
# In die Datei wp-config.php einfügen
define('WP_HOME', 'https://www.example.com');
define('WP_SITEURL', 'https://www.example.com');
# Oder in der Datenbank aktualisieren
UPDATE wp_options SET option_value = 'https://www.example.com' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://www.example.com' WHERE option_name = 'home';
Ursache 4: Load Balancer oder Reverse Proxy
Terminiert der Load Balancer SSL (SSL Termination) und reicht die Anfrage per HTTP an das Backend weiter, geht der Backend-Server davon aus, nicht unter HTTPS zu laufen, und leitet weiter.
Lösung
# Nginx: Vom Proxy gesetzten Header prüfen
set $redirect_https 0;
if ($scheme = "http") { set $redirect_https 1; }
if ($http_x_forwarded_proto = "https") { set $redirect_https 0; }
if ($redirect_https = 1) { return 301 https://$host$request_uri; }
# Apache: X-Forwarded-Proto prüfen
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Fehlersuche: Die Weiterleitungskette sichtbar machen
# Weiterleitungskette mit curl verfolgen
curl -vL http://example.com 2>&1 | grep -i "location:"
# Oder httpstatus.io verwenden (Web-Tool)
# Zeigt die Weiterleitung und den HTTP-Code jedes Schritts
Fazit
Der Fehler ERR_TOO_MANY_REDIRECTS entsteht meist durch einen Widerspruch zwischen dem SSL-Modus von CDN/Proxy und den Weiterleitungsregeln des Servers. Wenn Sie Cloudflare nutzen, löst der SSL-Modus „Full (Strict)“ das Problem, andernfalls die Prüfung des Headers X-Forwarded-Proto. Indem Sie die Weiterleitungskette mit curl verfolgen, finden Sie den fehlerhaften Schritt schnell.