Nach dem Update auf WordPress 3.9 trat in den letzten Tagen häufiger das Phänomen auf, dass sich die Hauptseite im Multisite-Netzwerk nicht mehr aufrufen ließ, sondern in einer Umleitungs-Schleife hing. Das hängt mit den umfangreichen Änderungen an der Art und Weise, wie Domains und Pfade innerhalb des WordPress Netzwerk aufgerufen werden. Siehe dazu auch den ausführlichen Blogpost im Core-Make auf WordPress.org (eng)

Browser Fehlermeldung bei Umleitungs Problem nach Update auf 3.9

Die Ursache ist meistens in der Domainkonfiguration der Multisite zu finden. Im Falle einer Subdomain-basierten Installation wird www.domain.de zu domain.de/wp-signup.php?=www und wieder zurück auf www.domain.de umgeleitet usw. bis der Browser die Fehlermeldung ausspuckt. Es scheint so, dass www.domain.de (mit dem www Prefix) nun auch als Subdomain interpretiert wird.

Auch wenn man in der wp-config.php die Variable define( 'NOBLOGREDIRECT', 'http://www.domain.de' ); definiert hatte, wenn die Neuregistrierung einer weiteren Sub-Domain-Instanz innerhalb der Multisite deaktiviert ist, läuft die Umleitung ins Unendliche.

Hier hilft nur ein Eingriff in die Datenbank, denn ins Backend kommt man natürlich auch nicht. Allerdings in die Subdomain-Instanzen, da hier dann keine Umleitung greifen muss.

Wie kann die unendliche Umleitung gelöst werden?

  1. Login in die Datenbank (meist via phpMyAdmin)
  2. komplettes Datenbank-Backup erstellen
  3. in der Tabelle wp_blogs den Eintrag der ersten Domain ändern von domain.de auf www.domain.de – also mit www Präfix!
  4. in der Tabelle wp_options die Einträge in siteurl und home in http://www.domain.de umstellen (hier auch mit www Präfix)
  5. nun muss ein Zeile in der wp-config.php geändert werden define('DOMAIN_CURRENT_SITE', 'www.domain.de');, somit wird die Konstante DOMAIN_CURRENT_SITE gleich gesetzt mit der Domain in der Tabelle wp_blogs
  6. als letzter Schritt ist eine Änderung an der .htaccess notwendig: unter RewriteEngine on wird die Datei um folgende Zeilen ergänzt:
    RewriteCond %{HTTP_HOST} ^domain.de$
    RewriteRule (.*) http://www.domain.de/$1 [R=301,L]

Nach diesen Schritten sollte eurer Frontend sowie Backend der Hauptdomain eurer Multisite wieder normal erreichbar sein.

Für den Fall, dass die Multisite auf Basis von Unterverzeichnissen installiert wurde, weise ich darauf hin, dass es zu Problemen nach dem Update kommen kann, wenn der Verzeichnis-Pfad Großbuchstaben enthält. (s. auch hier das Ticket https://core.trac.wordpress.org/ticket/27866)

Weitere bekannte Konflikte und Probleme, die nach dem Update auf 3.9 auftreten können, werden im Support-Forum auf WordPress.org gesammelt: https://wordpress.org/support/topic/wordpress-39-master-list

Wie bei jedem großen Versions-Sprung gilt immer die Regel: BACKUPS erstellen VOR dem Aktualisieren. Am Besten im Vorfeld auf einer identischen Kopie der Live-Seite sämtliche Updates testen. Das Grundsystem von WordPress wird in der Regel gründlich getestet, oft treten Konflikte mit Plugins und Themes auf, die noch nicht die betreffenden Änderungen übernommen haben.