toscho.design

WordPress Multisite mit mehreren Domains einrichten

Wie kann man einer Site in einer Multisite-Installation eine eigene Domain zuweisen? Früher haben wir dafür Plugins gebraucht, heute geht das mit Bordmitteln. Sogar recht schnell.

  1. Installiere WordPress als Multisite; wähle die Einstellung mit Subdomains.
  2. Erstelle eine neue Site darin unter Seiten/Hinzufügen. Als Site- bzw. Blogadresse nimm irgend etwas, du änderst das ohnehin gleich.

    Bildschirmfoto der Maske zum Anlegen eines neuen Blogs

  3. Bearbeite die Site dann unter Alle Seiten/Bearbeiten. Fülle das Feld für die URL mit dem Domainnamen.

    Bildschirmfoto der Änderungsmaske für ein Blog

  4. Setze in der wp-config.php die Konstante COOKIE_DOMAIN auf einen leeren String, damit du von WordPress fürderhin das passende Cookie bekommst und dich in allen Domains anmelden kannst.
  5. Richte deinen Server so ein, dass er Anfragen auf die neue Domain auf dasselbe Verzeichnis lenkt wie die auf die erste Domain der Hauptsite.

    Bildschirmfoto der Verzeichnisstruktur

    Im Screenshot hier sieht man die Verzeichnisstruktur: wp1 ist der Document Root für alle Domains, die im unteren Fenster blau markiert sind. Dort habe ich Symlinks angelegt, die jede Anfrage auf dieses Verzeichnis lenken. Eigentlich wäre das Verzeichnis html der Root. Da liegt momentan nichts.

Das war es schon.

Hier zum Vergleich noch die aktuelle wp-config.php von wpkrauts.com; auf dieser Installation läuft auch wpkrauts.de. Die nicht-öffentlichen Werte habe ich natürlich entschärft. :)

<?php
const DB_USER              = 'geheim';
const DB_PASSWORD          = 'noch geheimer';
const DB_HOST              = 'localhost';
const DB_CHARSET           = 'utf8';
const DB_COLLATE           = 'utf8_unicode_ci';
const DB_NAME              = 'darfst du erraten';

// https://api.wordpress.org/secret-key/1.1/salt/
const AUTH_KEY             = 'nicht dieser';
const SECURE_AUTH_KEY      = 'nicht dieser';
const LOGGED_IN_KEY        = 'nicht dieser';
const NONCE_KEY            = 'nicht dieser';
const AUTH_SALT            = 'nicht dieser';
const SECURE_AUTH_SALT     = 'nicht dieser';
const LOGGED_IN_SALT       = 'nicht dieser';
const NONCE_SALT           = 'nicht dieser';

$table_prefix              = 'siehe_oben_';
const WPLANG               = 'de_DE';

const MULTISITE            = TRUE;
const SUBDOMAIN_INSTALL    = TRUE;
$base                      = '/';
const DOMAIN_CURRENT_SITE  = 'wpkrauts.com';
const NOBLOGREDIRECT       = 'http://wpkrauts.com';
const PATH_CURRENT_SITE    = '/';
const SITE_ID_CURRENT_SITE = 1;
const BLOG_ID_CURRENT_SITE = 1;
const COOKIE_DOMAIN        = '';

defined( 'ABSPATH' ) || define( 'ABSPATH', __DIR__ . '/' );
require_once( ABSPATH . 'wp-settings.php' );

Ein Plugin braucht man nur, wenn die Domain mit www. beginnen soll. Aber wer macht das heute noch? Anfragen auf www.wpkrauts.de lenkt WordPress selbst auf die korrekte Domain ohne www. um.

Post per E-Mail oder XML RPC (verwendet der Windows Live Writer) habe ich damit noch nicht getestet. Das sollte funktionieren; allerdings würden mich hier Bugs nicht überraschen.

9 Kommentare

  1. Mike Hutner am 30.07.2013 · 20:12

    Na das ist doch echt einfach, wußte ich noch gar nicht, daher vielen Dank für die Anleitung. Hast Du bei dieser Art der Installation denn auch Probleme mit den Caching-Pulings?

  2. Thomas Scholz am 30.07.2013 · 20:22

    @Mike Hutner: Ich sehe nicht, warum ein Caching-Plugin damit ein Problem haben sollte. Wenn doch, so ist es kaputt.

  3. Mike Hutner am 30.07.2013 · 22:27

    Ok, ich hab ja nur mal gefragt, weil ich mit dem W3TC bei MU mal auf die Nase gefallen bin.

  4. sven michael am 06.10.2013 · 13:57

    Benötigt man dafür die Möglichkeit Wildcards zu setzten? Vielen Dank und Grüße Sven

  5. Thomas Scholz am 08.10.2013 · 19:40

    @sven michael: Nicht zwingend, es erleichtert aber das Einrichten der Subdomain-Installation.

  6. Sven Michael am 08.10.2013 · 23:32

    Hallo Herr Scholz, danke für die Rückmeldung - kenne Sie eine Anleitung mit der man das ohne Wildcards bewerkstelligen kann? Besten Dank Sven Michael

  7. Thomas Scholz am 09.10.2013 · 08:43

    @Sven Michael: Im Grunde geht das ganz normal: Multisite mit Subdomains einrichten, die Warnung WordPress’ wegen fehlender Wildcards ignorieren, dann wie oben beschrieben weitermachen.

  8. Sven Michael am 10.10.2013 · 16:23

    Hallo Herr Scholz hat das irgendwelche Nachteile (Ladezeiten...) bzw. worin liegt dann der Vorteil wenn man Wildcards verwendet? Besten Dank Sven Michael

  9. Thomas Scholz am 10.10.2013 · 16:30

    @Sven Michael: Bei Wildcards wird jede Anfrage auf eine Subdomain an die Hauptdomain weitergereicht. invalid.example.com beispielsweise löst einen Aufruf der Hauptdomain aus, die dann irgendwas damit anfangen muss.

    Das ist geringfügig langsamer als die Fehlerseite des Webservers, aber zum Ausgleich kann man sinnvollen Inhalt anbieten.