Um eine Multisite mit mehreren Domains zu erstellen sind zwei Schritte notwendig. Nehmen wir an das Ganze soll mit WordPress und Plesk 11.5 gelöst werden. Ich habe das für eines meiner neuen Projekte eingerichtet, da ich ungerne für beide Seiten eine eigene WordPress Installation vornehmen wollte.
Vorteile und Nachteile einer WordPress Multisite-Installation
Plugins und Themes müssen für alle Sites nur einmal installiert und konfiguriert werden. Für Themes können Child-Themes genutzt werden. Es können beliebig viele Seiten in einer einzigen WordPress-Installation angelegt werden. Da es sich um eine Installation handelt, wird natürlich auch nur eine Datenbank benötigt. Nachteil daran ist, dass sich diese Datenbank ordentlich aufblähen kann, je mehr Seiten benutzt werden. Ein weiterer Nachteil ist, dass wenn ein Benutzer gekapert wird, der auf allen Seiten existiert, dementsprechend die gesamte WordPress-Installation angreifbar ist.
Tutorial WordPress Multisite erstellen
Zuerst muss eine WordPress-Installation durchgeführt werden, sofern noch nicht vorhanden. Es ist erforderlich, dass diese Seite direkt auf das root verweist. Im vorliegenden Fall auf www.sfgame-tipps.de statt sfgame-tipps.de/wordpress. Wenn auch www. als Präfix für alle Sites verwenden werden soll, so sollte die WordPress-Konfiguration wie folgt aussehen:
Um nun die Installation durchzuführen muss in der wp-config.php define(‚WP_ALLOW_MULTISITE‘, true); vor /* That’s all, stop editing! Happy blogging. */ eingefügt werden. Anschließend kann unter Werkzeuge > Netzwerk-Einrichtung die Multisite-Installation vorgenommen werden.
Wichtig bei der Installation ist, dass eine Sub-Domain-Installation ausgewählt wird. Die Empfehlung, das www-Präfix vor der Installation zu entfernen, kann ignoriert werden. Ich finde es besser, wenn meine Seiten mit www. in meiner Browserzeile erscheinen. Die Empfehlung rührt daher, dass WordPress davon ausgeht, dass die Multisite mit Subdomains betrieben wird. Im folgenden Beispiel sieht man, wie das aussehen würde, aber das ist nicht der Fall, den ich hier behandeln möchte, da ich nur mit verschiedenen Toplevel-Domains arbeiten möchte.
Anschließend werden zwei Felder mit Konfigurationstext angezeigt. Eins davon wird in die wp-config.php vor den vorhin benötigten Eintrag kopiert. Das zweite Feld gehört in die .htaccess-Datei. Die Meldung „Warnung! Wildcard DNS wurde eventuell nicht korrekt konfiguriert!“ kann ignoriert werden, sofern nur mit Top-Level-Domains gearbeitet werden soll. Nachdem dieser Schritt durchgeführt wurde, muss man sich erneut an der WordPress-Installation anmelden.
Um nun eine weitere Seite zu erstellen, kann man über den neuen Menüpunkt Meine Seiten > Netzwerkverwaltung > Seiten eine neue Seite hinzugefügt werden. Dazu klickt man auf Hinzufügen.
In diesem Dialog kann im Prinzip irgendwas eingetragen werden, denn die Einstellungen müssen später angepasst werden, wenn man mit zwei verschiedenen Domains arbeiten will. WICHTIG: Es muss die E-Mail-Adresse vom Admin-Account verwendet werden, sonst funktioniert es nicht!
Anschließend wird beim Ändern der Seite der korrekte Domainname eingetragen. Hier können auch weitere Optionen eingestellt, beispielsweise welche Benutzer es geben soll oder welche Themes für diese Seite gelten sollen.
Domain bei Plesk 11.5 hinzufügen
Um eine weitere Domain bei einer Multisite-Installation zu nutzen, muss diese auf dem Webspace ebenfalls auf das WordPress-Installationsverzeichnis verweisen. Bei Plesk 11.5 kann unter den Hosting-Einstellungen der Domain über den Button „Neue Domain hinzufügen“ eine weitere Domain hinzugefügt werden (sofern eure Hosting-Einstellungen dies zulassen).
Folgende Einstellungen habe ich hier vorgenommen:
- Domainname: Der Name der Domain (Im gegebenen Fall kickerstar-tipps.de)
- DNS-Serverkonfiguration: Unsere DNS-Einstellungen verwenden (empfohlen)
- Hostingtyp: Website-Hosting
- Dokumentenstamm: Hier muss der Pfad zur ursprünglichen Installation eingefügt werden. Z.B. /httpdocs/wordpress1/
- Bevorzugte Domain: Keine
Domain mit und ohne www Präfix erreichbar machen
Es sind nun zwei funktionierende Domains eingerichtet. Allerdings kommt eine Fehlermeldung sobald die neu eingerichtete Seite ohne www Präfix aufgerufen wird. Um dies zu verhindern, muss die .htaccess-Datei nochmals angepasst werden. Die beiden folgenden Zeilen werden nach RewriteBase / dort eingefügt.
RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Diese beiden Zeilen bewirken, dass ein Aufruf über domain.tld automatisch auf www.domain.tld redirected wird.
Der Übersicht halber nochmal die komplette Anpassung an der .htaccess, die durch die Multisite-Installation vorgenommen werden muss:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 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 ^(wp-(content|admin|includes).*) $1 [L] RewriteRule ^(.*\.php)$ $1 [L] RewriteRule . index.php [L] </IfModule>
Anmeldung an allen Netzwerkseiten möglich machen
Damit der Login auch in allen Netzwerkseiten funktioniert, muss in der wp-config.php noch die COOKIE_DOMAIN auf einen leeren Wert gesetzt werden, da WordPress sonst folgende Meldung ausgibt:
Fehler: Cookies werden von deinem Browser blockiert oder nicht unterstützt. Um WordPress zu benutzen, musst du Cookies erlauben.
Um dies zu verhindern, wird define(‚COOKIE_DOMAIN‘, “); in der wp-config.php vor /* That’s all, stop editing! Happy blogging. */ eingefügt.
Pingback: Neuinstallation vom Potheadz Network | wintux's Blog