"Zu viele Weiterleitungen" heißt, dass zwei Regeln uneins sind und einander aufheben: eine schickt http nach https, etwas anderes schickt https zurück nach http, und der Browser gibt nach zwanzig Runden auf.
Die Kette sehen
Raten Sie nicht aus dem Browser. Drucken Sie jeden Sprung mit Status und Ziel.
curl -sIL https://yourdomain.com | grep -E "HTTP/|location:"
Das sich wiederholende Paar in dieser Ausgabe ist der Streit. Es benennt beide Seiten.
Die vier Paare, die das verursachen
- Eine CMS-Site-URL, die dem Server widerspricht. WordPress steht auf http, während der Server https erzwingt - jedes korrigiert das andere, endlos.
- www- und Nicht-www-Regeln, die aufeinander zeigen. Wählen Sie einen kanonischen Host und lassen Sie den anderen einmal dorthin weiterleiten.
- Ein Proxy davor, der TLS terminiert. Der Server sieht blankes http, entscheidet, der Besucher brauche https, und leitet eine Anfrage weiter, die längst https ist. Er muss X-Forwarded-Proto lesen.
- Eine Regel, die den abschließenden Schrägstrich anfügt, und eine, die ihn entfernt.
WordPress im Besonderen
define('WP_HOME','https://yourdomain.com');
define('WP_SITEURL','https://yourdomain.com');
Beides in wp-config.php zu setzen nagelt es fest und beendet den Streit des Datenbankwerts mit dem Server.
Hinter einem Proxy oder einem CDN setzen Sie
$_SERVER["HTTPS"] = "on";, wenn X-Forwarded-Proto https ist, und zwar bevor WordPress lädt. Ohne das kann die Website nicht erkennen, dass sie längst sicher ist.Leeren Sie vor dem Testen den Browsercache. Eine 301 wird hart zwischengespeichert, und Sie sehen sonst weiter eine Schleife, die es nicht mehr gibt.