Multisite-Umgebungen in WordPress eignen sich für viele Anwendungsfälle, zb für
- Mehrsprachigkeit – wo jede Sprache eine eigene Multisite-Seite bekommt
- Soziale Netzwerke, wo jede Gruppe oder Benutzer eine eigenen Blog bekommt
- Kundenverwaltung, wo jeder Kunde eine eigene Multisite-Seite/Blog bekommt
Es gibt sehr viele Möglichkeiten, eine Multisite-Umgebung aufzusetzen und zu konfigurieren. Dazu hier ein paar Gedanken:
tl;dr
- Subdomain-Installation bringt Aufwand mit DNS, Plesk (und eventuell nginx)
Cool Stuff
- Jede Multisite kann eine eigene Domain haben
- Bessere Strukturierung von Inhalten und Teilbereichen mit integrierter Rechteverwaltung
- Wird eine Datenstruktur zb mit Meta-Feldern aufgebaut, bin ich immer im Post-Edit bereich und tu mir da schwer, andere Benutzer mit Rechten zu versehen. Vor allem wenn da Benutzer mit unterschiedlichen Berechtigungen behandelt werden müssen
- Multisites für zb Kunden können öffentliche und private Bereiche haben – so können die Kunden Ihren Kunden oder Bekannten Zugang zu den öffentlichen Bereichen geben
- Jeder Multisite für Kunden oder BuddyPress-Freunden kann von denen selbst verwaltet werden. Themes können gewechselt und weitere Benutzer verwaltet werden
- Trennung von sensiblen und öffentlichen Daten
- Medienverwaltung ist einfacher und getrennt! Werden soziale Netzwerke ohne Multisite aufgezogen, so sehen alle User alle Medien
Ordnerstruktur oder Subdomains – SSL, Permalink und Verzeichnisprobleme aufgelöst
Vorab: nginx kann in beiden Fällen Probleme machen!
Soll die Multisite-Umgebung unter
- zweiteseite.hauptdomain.com oder
- hauptdomain.com/zweiteseite
erreichbar sein?
Eine Entscheidungshilfe soll nachfolgende Gegenüberstellung geben.
Multisite mit Ordnerstruktur
Bei der Ordnerstruktur sind die Multisites unter hauptdomain.com/zweiteseite oder hauptdomain.com/dritteseite erreichbar.
Vorteile
- Kein Problem mit SSL-Zertifikaten wie let’s encrypt.
- Weil auf die Hauptdomain eh ein SSL-Zertifikat ausgestellt wurde, gilt das für alle Teile einer URL, die darauf folgen.
- hauptdomain.com/zweiteseite oder hauptdomain/blogs/dritteseite sind alle vom Zertifikat erfasst.
- Kein Problem mit DNS & Domainkonfiguration am Server (zb Plesk)
- Da für jeden weiteren Multisite-Blog keine Domain angelegt wird, muss ich am Server nichts konfigurieren. Ich brauch mich auch nicht um die DNS-Verwaltung kümmern.
- Gerade DNS macht bei Hostern gerne Probleme.
- URLS der Multisites können mit Permalinks leicht beeinflusst werden.
- Schnellerer und besserer Workflow beim Erstellen einer weiteren Seite. Zb durch Kunden oder User. Ich muss mich dadurch nicht um Domain- oder DNS-Handling kümmern.
- Weniger nginx-Probleme – da jede Unterseite nur über weiteres URL-Rewriting/Permalinks gelöst werden.
Nachteile
- Permalinks könnten Probleme machen. Gleichlautende Seiten oder CPT-Posts könnten mit dem Slug/Namen der Multisite-Seite kollidieren.
- Ein Beitrag mit dem Titel Essen und der URL meineseite.com/essen macht Probleme, wenn ich einen Multisite-Blog mit der URL meineseite.com/essen habe!
- Lösung: Posts sollten sowieso immer einen nummerischen Permalink-Prefix haben, zb: /%post_id%/%postname%/
Multisite mit Subdomains
Vor und Nachteile der Ordnerstruktur-Konfiguration sind hier meist vice versa zu sehen. Zusätzlich:
- Subdomains könnten als saubere Trennung gesehen werden
- Domain könnte sehr lang werden!
- Wird eine Multisite unter einer übergeordneten Subdomain betrieben, wird die URL sehr lange, komplex oder unschön.
- Hauptseite ist unter subdomain.meinedomain.at erreichbar. Wird nun eine Multisite darunter eingerichtet, kommt es zu solchen URLS: multisiteblog.subdomain.meinedomain.at.
- Wildcard-DNS-Eintrag wird benötigt.
Plesk
- Subdomains verlangen zumindest Einrichtung einer Wildcard (mit dem *), also sowas: *.meineseite.com
- Werden .htaccess undn wp.-config.php über Plesk editiert, so können sich die Dateirechte ändern und es kommt zu Datenbank-Verbindungsproblemen.
- Plesk bietet 3 Möglichkeiten für Subodmain-Konfiguration an – dadurch ist man flexibel:
- Domain-Alias verwenden, gleichen Document-Root verwenden, Webhosting für Subodmain entfernen, default Webseite für IP setzen.
- https://support.plesk.com/hc/en-us/articles/115001016553-How-to-set-up-multisite-WordPress-network
„/blog/“-Slug in URL entfernen
Man könnte sich an /blog/ in der Url stören. Das lässt sich aber ganz einfach beseitigen!
- Im Netzwerkbereich (domain.at/wp-admin/network/site-settings.php?id=1) die Permalinkstruktur anpassen und das /blog/ wegnehmen:
- Alt:
- Neu:
Dafür gibt es natürlich auch ein Plugin:
Erzwungene Subdomain-Installation doch noch als Unterverzeichnis-Installation durchführen
Da deine Installation nicht neu ist, müssen die Websites in deinem WordPress-Netzwerk Subdomains verwenden. Die Haupt-Website einer Installation in Unterverzeichnissen benötigt eine modifizierte Permalink-Struktur, die möglicherweise bestehende Links beeinträchtigt.
Das kennt man und ärgert sich darüber, oder?
Trotz komplett neuer Installation kommt also der Zwang, die Multisite nur als Subdomain-Installation durchzuführen!
Das Ziel wär aber folgendes:
Die Lösung?
- Alle Artikel und Seiten löschen.
- Eventuell auch: Permalinkstruktur auf schöne Urls ändern
Was mache ich mit WP_ALLOW_MULTISITE?
Bei der Installation bekommt man folgende Anweisungen:
In der Datei wp-config.php steht bereits der Eintrag
define( 'WP_ALLOW_MULTISITE', true );
und daher würde das dann so aussehen:
WP_ALLOW_MULTISITE brauche ich nur, um die Multisite-Installation überhaupt zu ermöglichen.
Wenn ich den vorgegebenen Block aus dem ersten Screenshot in die wp-config.php kopieren muss, kann ich WP_ALLOW_MULTISITE löschen oder überschreiben!
Siehe:
- https://core.trac.wordpress.org/ticket/32285
- https://github.com/Automattic/wp-super-cache/issues/97
- https://github.com/WordPress/WordPress/blob/e19a8796fd0bc32790f62a586c24f693766a34a0/wp-includes/load.php#L753
Domainmapping – Domains für die einzelnen Blogs aufschalten
Früher brauchte man ein Plugin, um extra Domains für die „Unterseiten“ zu verwenden.
Seit einiger Zeit ist diese Funktionalität aber im WordPress-Core enthalten:
https://codex.wordpress.org/WordPress_Multisite_Domain_Mapping