Wie verwende ich Wordpress Multisite mit verschiedenen Domainnamen?

18

Ich möchte mit WordPress Multisite arbeiten, möchte aber meine eigenen Namen verwenden können. Zum Beispiel heißt meine Hauptseite example.com. Wenn ich meinem Netzwerk mit mehreren Standorten eine neue Site hinzufügen möchte, wird sie aufgerufen newsite.example.com. Ich möchte, dass es newsite.comohne ist example. Gibt es einen Weg, dies zu erreichen?

Ich habe von Domain Mapping mit einem Plugin gehört, weiß aber nicht, ob dies für diese Frage relevant ist. Wenn es relevant ist, würde ich gerne wissen, was genau das ist.

Kevin.a
quelle
Es kann erwähnenswert sein, dass Sie, um auf ein Plugin verzichten zu können, eine dedizierte IP-Adresse benötigen, zumindest habe ich das verstanden.
Neal Jones

Antworten:

24

Es scheint immer ein bisschen Verwirrung zu diesem Thema zu geben. Vielleicht könnte WordPress die Benutzer in diesem Prozess besser führen. Ich nehme jedoch an, dass Multi-Site nicht für TLDs vorgesehen war.

Zuallererst würde ich WordPress installieren , Multisite einrichten und es als Subdomain-Netzwerkkonfiguration konfigurieren.

Hier ist eine Beispielkonfiguration für Ihre wp-config.phpDatei im Basisverzeichnis Ihrer WordPress-Installation:

/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
define( 'DOMAIN_CURRENT_SITE', 'www.primary-domain.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

Hier ist die Grundkonfiguration für Ihre .htaccessDatei als Subdomain-Konfiguration im Basisverzeichnis Ihrer WordPress-Installation:

# BoF WordPress

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 ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

# EoF WordPress

Damit TLDs richtig funktionieren, musste ich einige zusätzliche Konfigurationen an der wp-config.phpDatei vornehmen :

define( 'COOKIE_DOMAIN', '' );
define( 'ADMIN_COOKIE_PATH', '/' );
define( 'COOKIEPATH', '/' );
define( 'SITECOOKIEPATH', '/' );

Das wars mit den WordPress-spezifischen Konfigurationen.

Persönlich möchte ich einen virtuellen Apache-Host für die Primärdomäne im Netzwerk haben und dann diesen virtuellen Host mit Aliasdomänen konfigurieren. Jede Aliasdomäne ist eine der zusätzlichen Sites in Ihrem Netzwerk.

Wie auch immer Sie am Setup arbeiten, Sie müssen den DNS jeder Domain auf denselben Webserver auflösen und jede Domain auf dasselbe Verzeichnis verweisen, in dem die primäre Domain mit WordPress installiert wurde. Jede Domain in Ihrem Netzwerk muss auf denselben Webserver mit DNS-Einträgen verweisen und denselben Verzeichnispfad für die von WordPress verwendeten Dateien verwenden.

Sobald Sie alles richtig konfiguriert und eingerichtet haben, wie oben beschrieben. Melden Sie sich in Ihrem WordPress-Administrationsbereich an und navigieren Sie zum Administrationsbereich des Netzwerks, um Ihrem Netzwerk eine neue Site hinzuzufügen.

Wenn Sie eine Website hinzufügen, werden Sie gezwungen, die Website so hinzuzufügen, als wäre sie eine Unterdomäne unter Ihrer Primärdomäne. Rollen Sie einfach mit. Geben Sie vorübergehend etwas ein.

Sobald die Site hinzugefügt wurde, finden Sie sie in der Liste der Sites in Ihrem Netzwerk. Klicken Sie auf dieser bestimmten Site auf Bearbeiten. Jetzt können Sie den Domainnamen dieser Website zu 100% ändern. In diesem Fall würden Sie den tatsächlichen Domainnamen für diese TLD-Site eingeben.

Ich weiß, es ist ein bisschen trickreich, es so zu machen, aber es funktioniert und Sie müssen keine Plugins verwenden.

Michael Ecklund
quelle
Vielen Dank dafür, scheint zu funktionieren - und es schien den Cookie-Teil zu brauchen. Für mich habe ich 1) eine neue Domain registriert, 2) seine Nameserver auf meinen vorhandenen WordPress Multisite-Host ausgerichtet, 3) in cPanel eine Add-On-Domain erstellt und den Dokumentenstamm als dieselbe public_html wie die primäre Site festgelegt (wie Sie) sagte, ich es das Standard nicht versucht haben, ein neues Verzeichnis, so dass nicht sicher , ob das funktionieren würde), und 4) die Subsite uRL aus geändert oldsubdomain.primarysite.com zu newdomain.com Daumen drücken, keine DNS - Probleme so weit.
Robert Andrews
Ich liebe diese Antwort ... aber ich habe ein Problem. Dein Vorschlag, die .htaccess zu ändern, da das WordPress auch die gleiche Modifikation ergab. Wenn ich diese Änderung vornehme, stürzt das System ab. Irgendwelche Ideen, warum das so wäre?
Debbie Kurth
4

Es ist ohne Plugin seit einigen Releases möglich (kann mich nicht an das konkrete Release erinnern, aber das Feature ist schon eine Weile da). Wenn Sie jedoch von vorne beginnen, sollten Sie WordPress Multisite im Subdomain- Modus installieren .

Sie müssen (wahrscheinlich kevin123.com) eine Haupt-URL als Haupt-URL für das Netzwerk (Multisite) deklarieren . Dies wird wp-config.phpin der DOMAIN_CURRENT_SITEKonstante gespeichert und auf der Site (früher als »Blog« bezeichnet), die diese Domain als Home-URL verwendet, muss die ID gespeichert sein BLOG_ID_CURRENT_SITE. Dies ist jedoch während des Standardinstallationsprozesses so ziemlich das Standardmaterial.

In WordPress können Sie die Subdomain nur angeben, wenn Sie eine neue Site erstellen . Nachdem die Site erstellt wurde, können Sie sie bearbeiten und einen völlig beliebigen Wert für die Site-URL hinzufügen. Ich habe es vor einiger Zeit in dieser Antwort mit einigen Screenshots beschrieben: Sind verschachtelte Subdomains mit einer Subdomain mit mehreren Sites möglich?

Möglicherweise müssen Sie die Konstante auch COOKIE_DOMANauf einen leeren Wert setzen wp-config.php:

define( 'COOKIE_DOMAIN', '' );
David
quelle