WordPress-Multisite mit einer Mischung aus Subdomains und Unterverzeichnissen

Bei einer Multisite entscheidet ihr euch ganz am Anfang dafür, ob ihr sie mit Subdomains oder Unterverzeichnissen betreiben möchtet – ein Mix aus beiden Varianten ist nicht ohne Anpassungen möglich. Hier stelle ich euch vor, wie ihr vorgehen müsst, um eine Multisite mit Subdomain- und Unterverzeichnis-Sites zu betreiben.

Ich habe meine Site kürzlich von .de auf .com umgezogen und die englische Version von en.florianbrinkmann.com auf florianbrinkmann.com/en. Problem dabei: Neben der englischen Variante sind noch die ganzen Theme-Demos Teil meiner Multisite, und die bleiben als Subdomains bestehen. Ich brauchte also eine Mischung aus Subdomains und Unterverzeichnissen in einer Multiste.

Glücklicherweise haben sich bereits andere mit diesem Thema auseinandergesetzt, und so bin ich bei meiner Recherche auf den Artikel »WordPress Multisite: (Sub-)Domains und Sub-Directories kombinieren« von David Naber sowie auf »WordPress Multisite mit mehreren Domains einrichten« von Thomas Scholz gestoßen, die sehr hilfreich waren.

Hier die Schritte, die ich zur Umstellung meiner Website gemacht habe (ausgehend von einer Multisite, die auf Subdomains eingestellt ist):

  1. define( 'NOBLOGREDIRECT', 'https://example.com' ); in die wp-config.php eintragen, um die Registrierung neuer Sites im Frontend zu deaktivieren (natürlich mit eurer Domain 🙂 ). Eventuell müsst ihr nun noch remove_action( 'template_redirect', 'maybe_redirect_404' ); in die functions.php eures Themes oder besser in ein (MU-)Plugin schreiben, damit 404-Fehler korrekt funktionieren und nicht zur Hauptdomain umgeleitet werden.
  2. Folgende Cookie-Konstanten in die wp-config.php eintragen:
    define( 'ADMIN_COOKIE_PATH', '/' );
    define( 'COOKIEPATH', '' );
    define( 'SITECOOKIEPATH', '' );

    Ohne diese Konstanten müsstet ihr euch auf der Unterverzeichnis-Installation einloggen, auch wenn ihr bereits auf der Hauptdomain oder einer Subdomain-Site eingeloggt seid. Ansätze für die Lösung habe ich aus den verlinkten Beiträgen und einer Antwort im WordPress.org-Forum.

  3. Die Rewrite-Regeln von WordPress in der .htaccess so ändern, dass sie den Regeln einer Unterverzeichnis-Installation entsprechen, damit auf das Backend der Unterverzeichnis-Installation(en) zugegriffen werden kann:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    # add a trailing slash to /wp-admin
    RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    RewriteRule . index.php [L]
  4. Eine neue Site in der Multisite erstellen (Subdomain ist egal).
  5. Die Informationen der Website öffnen und in das Domain-Feld die Hauptdomain mit dem gewünschten Unterverzeichnis eintragen. Bis vor einigen WordPress-Versionen gab es hier noch ein extra Feld für den Pfad.
  6. Fertig. 🎉

Falls ihr ebenfalls nachträglich eine Website von einer Subdomain auf ein Unterverzeichnis umzieht, denkt an die Redirects! Ein Beispiel zur Weiterleitung einer Subdomain auf ein Unterverzeichnis findet ihr bei Stack Overflow.

Das könnte auch interessant sein

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.