Manchmal wäre es doch recht sinnvoll und praktisch, wenn man mit einer WordPress-Instanz direkt mehrere Domains, respektive Subdomains bedienen könnte. Sinnvoll zum Beispiel dann, wenn man pro Subdomain eine andere Sprache anbieten möchte (de.domain.tld, en.domain.tld, fr.domain.tld). Üblicherweise wird hier zu mehreren Instanzen gegriffen, die wiederum jede für sich gepflegt werden möchte. Bei einem Dutzend und mehr (Sub)Domains macht die Sache dann auch so langsam keinen Spaß mehr und wird mitunter zum echten Zeitfresser, möchte man auch stets bei jeder Instanz die aktuellsten Versionen der Plugins installiert wissen, et cetera.
Um das Ganze nun elegant zu umgehen, eine Menge Zeit und Arbeit zu sparen und dabei trotzdem noch pro Blog eigene Konfigurationen, Templates und Unique Content anbieten zu können, hat sich in der Praxis nun das folgende – sogar recht einfache – Workaround bewährt.
Dazu öffnen wir die wp-config.php, welche sich im Hauptverzeichnis von WordPress befindet. Dort suchen wir jetzt jene Zeile, in der $table_prefix = 'wp_'; zu lesen ist. Dahinter steht meistens noch eine mit zwei Schrägstrichen auskommentierte Anmerkung, welche je nach Verison variiert, aber wichtig ist nur, dass es sich um die Zeile handelt, in welcher der Table-Prefix festgelegt wird.
Die ganze Zeile wird nun ersetzt durch eine von drei möglichen Varianten:
Variante 1: eine Domain, multiple Subdomains
[source:php]
$arrPrefix = explode( “.”, $_SERVER["HTTP_HOST"] );
$table_prefix = $arrPrefix[0].’_';
[/source]
Variante 2: Multiple Domains (pro Domain ein Blog)
[source:php]
$arrPrefix = explode( “.”, $_SERVER["HTTP_HOST"] );
$table_prefix = $arrPrefix[( count( $arrPrefix ) - 2 )].’_';
[/source]
Variante 3: Multiple Domains mit jeweils multiplen Subdomains
[source:php]
$arrPrefix = explode( “.”, $_SERVER["HTTP_HOST"] );
$table_prefix = implode( “_”, $arrPrefix ).’_';
[/source]
Variante 4: Multiple Domains, Subdomains, gleiche Domainnamen mit verschiedenen .tlds inkl. Fix für Bindestriche
[source:php]
$table_prefix = str_replace( array( “.”, “-” ), “_”, $_SERVER["HTTP_HOST"] ).”_”;
[/source]
Da hier bislang nur Variante 1 zum Einsatz kam, musste ich mir die beiden anderen quasi aus dem Ärmel schütteln, aber das Prinzip bleibt auch dort dasselbe. Der Prefix für die Tabellen, welche WordPress in der konfigurierten Datenbank nutzen soll, wird je nach (Sub)Domain dynamisch gesetzt. Sehr einfach, aber sehr effektiv.
Das Ganze lässt sich per SubDomain und einer einfachen switch/case-Routine auch noch erweitern, um – wie Eingangs bereits erwähnt – für verschiedene SubDomains zum Beispiel auch die passende Sprache auszuwählen. Da jedes Blog zwar nun auf der gleichen Instanz aufsetzt, jedoch andere Tabellen nutzt, muss auch jedes Blog zuerst noch regulär installiert und konfiguriert – also komplett neu aufgesetzt – werden. Dazu reicht es, alle betroffenen Domains einmal kurz anzusurfen und den gewohnten Installations-Prozess zu durchlaufen. Alle Blogs teilen sich natürlich sämtliche Plugins, Themes und folgende Updates, Erweiterungen und Änderungen.
Sehr praktisch übrigens auch, möchte man einen Blog-Hosting-Service für WordPress anbieten. Durch weitere, einfache Konfigurationsänderungen lässt sich auf diese Weise sogar die DB-Last verteilen, indem man hier mehrere (Mirror-)Server angibt. Da die Änderungen sich nur auf die wp-config.php beziehen, lässt sich WordPress auch weiterhin noch problemlos updaten.
Nachtrag vom 28.09.2006:
Nach einem sehr überraschenden und nicht minder erfreulichen Anruf von Robert Basic noch eben eine kurze viel zu lang geratene Randnotiz hinterher:
Es ist natürlich wichtig, dass sämtliche Domains, die auf der WordPress-Instanz aufsetzen sollen, in ein und dasselbe Verzeichnis auf dem Server zeigen. Liegen die WordPress-Skripte also in /home/htdocs/blog auf dem Server, so müssen auch entsprechend die Domains dorthin gelenkt werden. Beim Apache sähe das Ganze z.B. in der Konfigurationsdatei so aus:
ServerName domain.tld
ServerAlias *.domain.tld
DocumentRoot /home/htdocs/blog
In diesem Falle zeigen sämtliche Subdomains von domain.tld in ein einziges Verzeichnis mit genau einer WordPress-Instanz, die sich aber wiederum liebevoll per oben genannter Variante 1 um jegliche Subdomains kümmert, die hier so anfallen. Surft man nun also tolle.domain.tld an, so nutzt WordPress nach erfolgreicher Modifikation sämtliche Tabellen mit “tolle_” als Prefix und legt somit augenscheinlich ein komplett neues Blog an, obgleich es auf der einen Instanz aufsetzt, welche auch www.domain.tld und schnieke.domain.tld nutzen. Plugins und Templates wiederum teilen sich alle Blogs und können je nach Subdomain einzeln konfiguriert werden, da diese Daten wiederum in der jeweiligen DB-Tabelle gespeichert werden. Jedes Blog fungiert also autonom, nutzt aber den gleichen WordPress-Kern.
Viel Spaß damit.




[...] Erik Range stellt auf seinem Blog Open Sourced Brain eine bezeichnend einfache Lösung vor: Manchmal wäre es doch recht sinnvoll und praktisch, wenn man mit einer WordPress-Instanz direkt mehrere Domains, respektive Subdomains bedienen könnte. Sinnvoll zum Beispiel dann, wenn man pro Subdomain eine andere Sprache anbieten möchte (de.domain.tld, en.domain.tld, fr.domain.tld). Üblicherweise wird hier zu mehreren Instanzen gegriffen, die wiederum jede für sich gepflegt werden möchte. Bei einem Dutzend und mehr (Sub)Domains macht die Sache dann auch so langsam keinen Spaß mehr und wird mitunter zum echten Zeitfresser, möchte man auch stets bei jeder Instanz die aktuellsten Versionen der Plugins installiert wissen, et cetera. [...]
Heftig. Und ich hab morgen Zeit!
Da werde ich das doch mal austesten!
Super Sache, und so simple. Warum habe ich bisher bei multi-blog ansetzen nichts davon gelesen?
Sehr praktisch, dass bei mir bald ein Serverwechsel ansteht, da kann ich dann aus meinen 10 WP-Installationen ganz bequem eine einzige machen. Ich bin begeistert!
Hi Erik,
da vermisst noch meiner außer mir die Möglichkeit aus einem Adminbereich mehrere Blogs (Subblogs) publishen zu können? :)
Ja das ist definitiv ein großer Vorteil von MT… wenn da nur nicht so viele Nachteile wären *seufz*
@Helmi: Leider ja, und das offizielle MU-WP lässt noch auf sich warten. Man könnte zwar sicher die jetzige 2.0.4er nehmen und modifizieren, aber die meisten Änderungen würden sich an den Core-Files abspielen, die man hier zum Teil umschreiben und entsprechend erweitern müsste. Als Folge wären dann natürlich neue Updates ein Ding der Unmöglichkeit.
Was machbar und eine Überlegung wert wäre, das wär’ vielleicht ein externes, komplett eigenständiges Skript, welches per XMLRPC neue Einträge an entsprechende(s) Blog(s) schickt. Darüber könnte man auch direkt noch Blogger, MT und andere Blogsysteme ansteuern. Ist dann nur wiederum eine Frage des Aufwandes – und ob es sowas nicht vielleicht doch schon gibt. :-)
Also wenn es um Posting in mehrere Domains geht, dann wäre sicherlich ein Blick auf http://outputthis.org Wert.
Dort gibts einen Dienst der auf XMLRPC aufsetzt und damit in mehrere Instanzen posten kann. Registrieren und das Plugin für WordPress installieren und loslegen.
[...] Multi-(Sub)Domain-WordPress Eine WordPress-Installation füttert mehrere Subdomains. Kann ganz einfach sein, sagt Open Sourced Brain. (tags: wordpress hack blogsoftware) [...]
[...] Eine recht interessante Methode mehrere Blogs auf unterschiedlichen Subdomains (z.B. um mehrsprachige Blogs, welche je eine eigenständige Subdomain besitzen wie “de.webmasterfind.de”, “en.webmasterfind.de”) oder sogar auf verschiedenen Domains mittels einem WordPress-Interface zu verwalten zeigt Open Sourced Brain auf. Habe es zwar noch nicht getestet, dürfte aber durchaus interessant sein, da durch eine kleine Änderung des Quellcodes, der administrative Aufwand zur Pflege der Softwarekomponenten erheblich vereinfacht wird. Stichwort: Blogs, wordpress [...]
[...] Update: Eventuell hilft ja auch dieser Artikel bei Open Sourced Brain weiter: Multi-(Sub)Domain-WordPress. [...]
Interessanter Ansatz, einfach und prägnant.
Bei Domains mit Bindestrich http://test.domain-zusatz.de/ taktet bei mir MySQL aus. Der Bindestrich dürfte gegen die Namenskonventionen verstossen. Ein kleiner Wermutstropfen, der sich aber leicht beheben lässt.
Danke für Deinen Impuls zum Nachdenken! :))
Dem Manne kann geholfen werden :-)
Bei Domains mit Bindestrichen würde z.B. eine weitere Zeile Abhilfe leisten. Einfach nochmal ein
$table_prefix = str_replace( “-”, “_”, $table_prefix );
darunter anhängen, dann sollte das eigentlich gehen. Wenn nicht, mir die Schuld und nochmal Bescheid geben. ;-)
[...] Und so habe ich dort fMulti gesehen und mich verliebt und es runtergeladen und jetzt lasse ich es gleich mal drauf und werde in den nächsten Wochen, vorallem weil ich dann ja noch den Tipp von Erik Range mit der MutliUser-Sache für WordPress umsetzen will (Hab ja doch den ein oder anderen Blog, den ich mit WP betreibe bzw. die ich technisch betreue hier im Paket liegen). [...]
@Eric: Wohl die beste Lösung, da gleichlautende Domains mit “_” und “-” selten anzutreffen sein sollten.
@Jörg: Jau, vor allem, weil “_” im Domainnamen zum Glück nicht zulässig ist. ;-)
Hallo, ich versuche gerade Deinen Tipp umzusetzen, habe in der[QUOTE] wp-config.php[/QUOTE]
das Orginal:
[QUOTE]// Wenn du verschiedene Pr?fixe benutzt kannst du innerhalb einer Datenbank
// verschiedene WorPress Installationen betreiben
$table_prefix = ‘wp_’; // Nur Zahlen, Buchstaben und Unterstriche bitte![/QUOTE]
zu:
[QUOTE]// Wenn du verschiedene Pr?fixe benutzt kannst du innerhalb einer Datenbank
// verschiedene WorPress Installationen betreiben
$arrPrefix = explode( “.â€Â, $_SERVER[â€ÂHTTP_HOSTâ€Â] );
$table_prefix = $arrPrefix[0].’_’; // Nur Zahlen, Buchstaben und Unterstriche bitte![/QUOTE]
geändert.
Wenn ich aber die Installationsseite:
[url]http://www.feuerkuenstler.com/feuerkuenstler/wp-admin/install.php[/url]
aufrufe kommt:
[QUOTE]Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /srv/www/htdocs/web116/html/feuerkuenstler/wp-config.php on line 15[/QUOTE]
@Detlef: Einer rein wahrscheinlichen Schätzung nach würde ich vermuten, dass Dein PHP-Editor irgendwie diese falsch formatierten \”WordPress-Gänsefüßchen\” mit übernommen hat. Versuch\’ mal, die entsprechenden Zeilen nochmal auszuschneiden, in einem Notepad einzufügen und von da aus nochmal zurückzukopieren.
Ansonsten schau ich mal, ob sich das neue Plugin nicht für eine korrekte Formatierung da oben im Posting verwenden lässt. ;-)
Edit: Versuch\’ jetzt einfach nochmal, oben die entsprechenden Zeilen rauszukopieren. Sollte jetzt auch direkt damit gehen.
Vielen Dank hat geklappt – scheinbar hat Opera die Formatierung von deiner Seite nicht richtig übernommen.
Welches Plugin meinst du denn?
Na, das SyntaxHighlighter-Plugin für WordPress, mit dem man Sourcecodes sehr einfach und schnieke formatiert darstellen kann. ;-)
wie macht man das denn wenn es einen blog gibt der schon läuft?
http://www.meinedomain.de sollte so bleiben, neu sollten sein
http://www.en.meinedomain,de
http://www.cz.meinedomain.de
Danke – das war genau das, wonach ich gesucht habe!
Beim Umzug bereits vorhandener Blogs auf diese Multi-Domain-Variante bin ich auf ein Problem gestoßen: Das Umbennen der einzelnen Tabellen entsprechend der oben erläuterten Prefix-Konvention (z.B. von “wp_” in “subdomain_domain_de_”) reicht nicht aus, weil WordPress an einigen Stellen das alte Prefix auch in den Tabellen stehen hat, im Bereich der Rechteverwaltung. Ich versuche die notwendigen Änderungen mal als MySQL-Statement darzustellen (hoffe das bleibt lesbar):
Die beiden meta_keys in _usermeta existieren für jeden User, der option_name in _options nur einmal.
Hoffe es ist klar geworden, wo was geändert werden muss (bin kein SQL-Experte :) – und vielleicht erspart das ja dem einen oder anderen eine langwierige Fehlersuche.
@Detlef: siehe nachfolgendes Posting von Tobias
@Tobias: Dankeschön ;-)
Super, vielen, vielen Dank!!!
[...] Da ich den Tipp von Erik Range zur gemeinsamen Nutzung einer WP-Installation für mehrere Blogs diese Nacht umsetzen werde, wird es wohl auf meinen Blogs (blog.signal77.de/wp/ und http://www.unser-rudel.de und den mit WP als CMS betriebenen Seiten zu Problemen kommen. [...]
[...] WordPress Multiuser ohne WPMU Installation? Erik präsentiert eine Möglichkeit mit einer WordPress-Installation mehrere Blogs zu verwalten. Es scheint recht einfach möglich, Voraussetzung ist, dass die Domains alle den selben document-root verwenden. Dies erleichtert natürlich ein Update mehrerer Blogs erheblich, da ja nur noch eine einzige Installation inkl. Plugins und Themes angepasst werden muss. Für den Eigenbedarf scheint diese Lösung wesentlich angebrachter als eine komplexe WPMU Installation. [...]
Ist es so auch möglich zwei Blogs zB
dieseite.de = Blog 1
dieseite/blog2= Blog 2
aufzusetzten?
Oder bin ich an die Struktur Subdomain “blog2.dieseite.de” gebunden?
Vielen Dank für die Hilfe – Gruss Georg
Hi
dein Script erzeugt SQl-Fehler bei der WP-Installation , wenn Domains mit Bindestrichen (“-”) verwendet werden.
Eine Lösung wäre das ersetzten von “-” durch “_”.
Grüße
Mo
@Mo: siehe Mail ;) Aber ich adde “Variante 4″ nochmal oben zum Beitrag.
@Fotoblog: Ohne Weiteres ist das leider nicht möglich. Man könnte zwar theoretisch sagen, jedes erste Unterverzeichnis wird als DB-Name genutzt, aber das stünde auf wackeligen Beinen. Per .htaccess/mod-rewrite müssten dann alle erste (oder auch nur ausgewählte) Verzeichnisse auf ein Hauptverzeichnis pointen, dort wiederum müssten man dann die URI abfangen, nach Slash exploden und die erste Array-Variable mit als Titel nehmen.. in der Praxis würde ich dann doch allerdings eher Subdomains empfehlen – ist einfach sauberer und hat den netten Nebeneffekt, dass Suchmaschinen mehr darauf schwören als auf tiefere Verzeichnisstrukturen. ;-)
[...] Auf der Seite von Open Sourced Brain habe ich den Artikel Multi-(Sub)Domain-WordPress gefunden, der sich genau mit diesem Thema beschäftigt. Er beschreibt dort eine recht interessante Methode mehrere Blogs auf unterschiedlichen Subdomains oder sogar auf verschiedenen Domains mittels einem WordPress-Interface zu verwalten. Ich habe die dort beschriebene 1. Variante gleich einmal für meinen aktuellen Blog und zwei internen Testblogs umgesetzt und beschreibe hier nun kurz meine Erfahrungen zu dem Thema Multi-Subdomains unter WordPress. [...]
Vielen Dank für den Tip.
Hat soweit auch alles super funktioniert. Das einzige was ich noch nicht hinbekommen habe sind unabhängige Sitemaps für Googles Webmaster Account. Ich nutze das Sitemap-Plugin für WordPress. Nun habe ich versucht, die Sitemaps jeweils in unterschiedliche Unterverzeichnisse abzulegen, also domain1sitemap/ , domain2sitemap/ usw.
Aber da streikt das Google Webmastertool, da die Sitemap im Wurzelverzeichnis der Domain abgelegt werden muss.
Irgendwelche workarounds bekannt?
@Markus: Das kommt ganz darauf an, welches Plugin Du genau nutzt. Ich habe auf einigen Multi-Domain-Projekten das Plugin Google Sitemap Generator for WordPress 3.0b1 laufen, was es inzwischen auch als 3.0b4 gibt, wie ich gerade gesehen habe. *g*
Nun gibt es der Möglichkeiten zwei:
— Eins
Auf dem Webspace hab’ ich mir als Pfad noch extra ./wp-cache/sitemap mit 0777 angelegt, weil ich’s gerne aufgeräumt mag. Die Einstellungen für’s Plugin sind hier wie folgt:
Unter Admin -> Einstellungen -> Sitemap:
- Custom Location wählen.
- Absolute or relative path to the sitemap file, including name:
/var/www/absoluter/pfad-zum-blog/wp-cache/sitemap/tolledomain.xml
- Complete URL to the sitemap file, including name:
http://tolledomain.com/wp-cache/sitemap/tolledomain.xml
— Zwei
Generell kann man auf die “Schönisierung” auch verzichten, die Datei einfach im Hauptverzeichnis belassen und tolledomain.xml nennen. Das Ganze sieht in den Einstellungen vom Plugin dann so aus:
Unter Admin -> Einstellungen -> Sitemap:
- Automatic Location belassen.
- Filename of the sitemap file:
tolledomain.xml
- nicht vergessen, dass tolledomain.xml und tolledomain.xml.gz auf 0777 sein müssen.
Und das war’s auch schon.
— Ende vom Lied
Anschließend noch einmal auf “Update Options” klicken und danach abschließend auf “Rebuild Sitemap”, um zu schauen, ob Google das alles so genehm ist. Dann für gut befinden.
Viel Spaß damit. ;-)
Hallo
ist schon nicht schlecht die lösung
aber bei mir funzen die permalinks leider nicht :(( hat das noch jemand ? oder liegt da an mir :-)
bekomme dann nen 403 :(
mfg
frank
[...] Multi-(Sub)Domain-WordPress @ Open Sourced Brain. (tags: Blog wordpress tutorial) [...]
Cool, funktioniert bestens. Aber kann es sein, dass sich die Blogs dann immer die gleiche Permalink-Struktur teilen müssen, sprich alle auf die gleich .htaccess zugreifen?
[...] Erik Range stellt in seinem Blog, der hier zu finden ist, eine wirklich kurze und einfache Methode vor. Allerdings sind auch hierfür Einträge in der httpd.cong vom Apache Server zu machen um alles optimal einzurichten. [...]
[...] Heute mal wieder einen kleinen Frickel-Flash gehabt und dieses Blog, das bislang als Standalone-Wordpress 2.0.7 lief, in meine Multi-User-Installation migriert. Nö, benutze dafür nicht WordPress Müh… Das wäre wohl mal wieder diese Spatzen-Kanonen-Geschichte. Mir reicht diese pfiffige Lösung von Erik, mit der ich auch weiterhin die normalen WordPress-Releases nutzen kann und in Zukunft jedes WordPress-Update (und von denen kommen in letzter Zeit ja reichlich) nur noch einmal durchführen muss. Bei der Gelegenheit habe ich auch gleich Jerome’s Keywords gegen das Simple Tagging-Plugin von Michael Wöhrer getauscht. Nur, falls sich jemand für solche technischen Details interessieren sollte. [...]
Wow Eric,
das ist doch echt mal ein nützliches Stück Code!
Was man mit ein, zwei Zeilen nicht alles erreichen kann.
Die Jungs solltes das mal in den Core einbauen.
vielen Dank
Jochen
Ich habe einen Blog aber 2 domains, die beide ganz normal auf meinen Blog zeigen sollen. Im admin-bereich von wordpress kann ich jedoch nur eine domain angeben. Wie schaffe ich es, das beide funktionieren?
Multiblog mit WordPress…
Auf Open-Source-Brain und Brand Aktuell sind Anleitungen zu finden, wie man mit WordPress einen Multiblog betreiben kann, ohne auf die die MU-Variante zurückzugreifen….
[...] Robert gab mir gleich zwei Tipps. Einmal das Plugin WordPress Instant Upgrade und dann, für mich noch viel verlockender, den Link zu einem Beitrag von Erik Range, indem dieser genau beschreib, was man machen muss, um mit einer WordPress-Installation mehrere Blogs zu betreiben. Geil! Damit kann man so viele Blogs anlegen, wie man will und muss nur eine Installation pflegen. [...]
Also irgendwie stehe ich wohl auf der Leitung. Habe mittlerweile diverse Wordress-Installationen möchte diese aber nicht weiter einzeln pflegen. Da sollte ich hier ja richtig sein. Sagen wir ich habe zwei Weblogs:
1. http://www.abc.de im Ordner abc mit $table_prefix = ‘abc_’
2. http://www.xyz.de im Ordner xyz mit $table_prefix = ‘xyz_’
Wie bekomme ich die jetzt mit der oben genannten Methode auf eine Installation? Sorry, wenn die Frage blöd erscheint, aber irgendwie fehlt mir ein Stück im Puzzle. Schon mal Danke im Voraus für Hilfestellungen!
[...] Multi-(Sub)Domain-WordPress « Nachtrag: Alternativen zu Pandora [...]
Danke für diesen tollen Tipp. Noch eine Anmerkung: ich war zu faul und zu risikoarm um die Live-DB umzubennenen, daher habe ich mir eine kleine Map geschrieben, die den _SERVER[HTTPPOST] auf ein DB Prefix mappt.
Vorteil der Variante: ich muss mich vorher nicht entscheiden ob ich mehrere Blogs pro Domain habe oder nicht.
Nachteil: ich muss die Blogs, die ich verwalten möchte kennen, was aber bei
Moin Eric,
zur Zeit habe ich ein solches Problem, für das Du hier einen Lösungsansatz bietest. Drei Blogs (zwei davon auf Subdomains) in drei verschiedenen Sprachen.
Fragen wären dann noch für mich, wie sieht es mit einigen Plugins aus, die ja schon in den jeweiligen Landessprachen angeboten werden, die kommen sich doch dann in die Quere (Bsp: WP-Contact-Form) und wie sieht es mit WP-Updates aus? Muß nicht jedes mal wieder die wp-config.php angepasst werden usw.?
ich sage Danke …..
Ich habe sowas jetzt auch gemacht (Vielen Dank dafür). Hat jemand nen Tipp, wie es gehen könnte die Kommentare der anderen Sprachversionen zu einem Beitrag jeweils mit anzuzeigen? Hat das schon mal jemand gemacht?
Möglichst in der richtigen zeitlichen Sortierung ;)
Danke
C.
Kann jemand einen Webhoster empfehlen, bei dem das funktioniert? Bei meinem (all-inkl.com) ist es meines Wissens nicht möglich, mehrere Domains auf ein Webserver-Verzeichnis zu legen. Zumindest nicht beim Managed Server.
habs jetzt selber gefrickelt, falls es nochmal jemand machen will:
eine Tabelle angelegt: all_comments in der wp_settings.php direkt auf diese verwiesen, damit alle Kommentare in diese eine Tabelle geschrieben werden.
Und dann noch ein Feld ergänzt, für die Sprache und dieses jeweils mit gespeichert und ausgelesen in der wp-includes/comments.php bzw. comment-templates.php
Viele Grüße
C.
[...] Werden alle Webseiten (egal ob Subdomains oder unterschiedliche Domains) beim selben Hoster betrieben, so kann man dies in der Tat relativ einfach umsetzen: im Herbst 2006 hatte Erik Range mit dem Artikel «Multi-(Sub)Domain-WordPress» gezeigt, wie man die Konfigurationsdatei des Blog-Systems WordPress anpasst, um mit nur einer einzigen WordPress-”Installation” (also die WordPress-Dateien auf dem Webserver) prinzipiell eine beliebige Anzahl an Blogs versorgt – die Datenbank-Daten für die einzelnen Blogs stammen dabei aus einer oder mehreren MySQL-Datenbanken. [...]
[...] Multi-(Sub)Domain-WordPress – Eine Installation – viele Blogs [...]
[...] Eric Range published a brilliant and easy solution for a multi(sub)domain hosting of wordpress. You only have to change your wp-config.php as described here. You only have one wordpress installation, including one plugin and one themes directory that you have to maintain. Every subdomain gets it’s own prefix in the database. For each subdomain you have to go through the wordpress installation process; that’s all. [...]
Bei all-inkl geht es zumindest mit subdomains, ansonsten würde ich mal nachfragen, da die wirklich sehr hilfsbereit sind und die Sachen ja sowieso auf dem selben Server liegen
Grüße
C.
Moin!
Super Idee und es scheint auch gut zu funktionieren.. allerdings frag’ ich mich grad wie man noch ein paar andere Sachen umsetzen kann:
verschiedene Subdomains verweisen auf ein Blog (z.B. hab ich mal political-blog.kdas.de und mal political.kdas.de angegeben) – wäre das da noch irgendwie lösbar? z.b. durch ein Array, dass einen Wert, falls er vorkommt durch einen anderen ersetzt (glaub switch + case wäre da brauchbar, bin aber recht php-noobig :D )
was würde er bei der Variante ohne Subdomain setzen (kdas.de)? Kein Prefix? an welcher Stelle kann ich da noch ein festes Prefix (Prefix vor dem Prefix :D ) einbauen um mir die alten Tabellen nicht zu zerschiessen?
Und schonmal danke für die super Idee… das sollte echt in den Core…
Greetz, kdas
P.S.: Für cabotine da oben wäre vllt. das Simple Multi Language Plugin besser… http://gh3.altervista.org/simple-multi-language-plugin/
da gibt’s dann nen kleinen JS- Button um die Sprache zu wechseln, ansonsten ist alles nur ein Blog (gibt nur Probleme mit dem Umbruch)
[...] Wir stießen dann hier, auf einen Artikel, von http://erik.range-it.de, der eben diese Methode entwickelt hatte. Wir waren beide sehr verblüfft, wie einfach das ganze doch war und fingen auch gleich damit an diese bei uns einzusetzen. Da es uns nun endlich möglich war die Gallery, die wir schon zuvor Wochen lang entwickelt hatten einzusetzen, machten wir uns also gleich frisch und munter ans Werk. [...]
[...] Ohne großen Aufwand kann man mit nur einer aktuellen WordPress-Installation beliebig viele Blogs betreiben, die dann unter beliebigen Domains und Subdomains erreichbar sind. Unter Multi-Subdomain-Wordpress bin ich auf ein paar Zeilen Code gestoßen, die aus einer normalen WordPress-Installation eine vollwertige Multi-User-Multi-(Sub-)Domain-Installation machen. Die Lösung ist sehr einfach. Man muß nur in der wp-config.php nur $table_prefix = ‘wp_’; gegen die folgende Zeile austauschen: $table_prefix = str_replace( array( “.”, “-” ), “_”, $_SERVER["HTTP_HOST"] ).”_”; Dann noch die gewünschten Domains und Subdomains auf das Verzeichnis der WordPress-Installation umbiegen und schon kann man WordPress wie gewohnt mit wenigen Klicks installieren. Existierende Blogs auf solch eine Multi-User-Multi-Domain-Version umzustellen ist ein wenig komplizierter. Aber da hat Stefan eine ausführliche Anleitung geschrieben. [...]
Bei mir funktioniert es leider nicht so recht (tv.dailymovie.de & kino.dailymovie.de) egal was ich aufrufe, es wird immer der Blog angezeigt den ich zuvor (als erstes) installiert habe, möglich das es nicht funktionieren kann weil nach aufrufen der Subdomain der richtige (tatsächliche) Pfad (also http://www.dailymovie.de/wordpress) angezeigt wird ??
fg
[...] Multi-(Sub)Domain-WordPress @ Open Sourced Brain. [...]
[...] Die Grundlagen zur Trennung mehrer Blogs anhand ihrer Domain oder Subdomain findet ihr auf erik.range-it.de oder blog.brandt-net.de. Da ich für 6grad.de und http://www.6grad.de keine Änderungen haben wollte, hab ich das ganze etwas umgestrickt und bin dann auf folgenden Code gekommen. [...]
Super Artikel! Er hat mir den richtigen Ansatz zum Etablieren eines Multi-Domain-WP geliefert. Jetzt habe ich einen Server für WP, auf den von verschiedenen Servern zugegriffen wird (bis jetzt laufen 6 Blogs ohne Probs).
Hier gibt es aber noch einige Stolpersteine:
* Ich musste anstatt HTTP_HOST $_SERVER["HTTP_X_FORWARDED_HOST"] verwenden, da ich an einigen Stellen mit mod_rewrite gearbeitet habe
* Die Veröffentlichung von vorproduzierten Posts funktionierte nicht, da die CronJob-Verwaltung über einen Request auf wp-cron.php abgewickelt wurde und dieser anscheinend nicht den Host mitgeliefert hat. Hierzu in der cron.php die Funktion spawn_cron() anpassen und den Aufruf wie folgt ändern: @file_get_contents(“http://”.$_SERVER["HTTP_X_FORWARDED_HOST"].”/blog/wp-cron.php?check=” . wp_hash(’187425′). “&HTTP_X_FORWARDED_HOST=”.$_SERVER["HTTP_X_FORWARDED_HOST"]);
Anschließend noch in der wp-cron.php folgende Zeile unter dem define-Statement hinzufügen:
if(isset($_GET["HTTP_X_FORWARDED_HOST"])){
$_SERVER["HTTP_X_FORWARDED_HOST"]=$_GET["HTTP_X_FORWARDED_HOST"];
}
Hoffe, dass erspart manchen die Fehlersuche ;)
[...] Mein Tatendrang kannte heute keine Grenzen und da habe ich mir einfach mal die Zeit genommen mich dem Thema Multi-Subdomains unter WordPress zu widmen. Auf der Seite von Open Sourced Brain habe ich den Artikel Multi-(Sub)Domain-WordPress gefunden, der sich genau mit diesem Thema beschäftigt. Er beschreibt dort eine recht interessante Methode mehrere Blogs auf unterschiedlichen Subdomains oder sogar auf verschiedenen Domains mittels einem WordPress-Interface zu verwalten. Ich habe die dort beschriebene 1. Variante gleich einmal für meinen aktuellen Blog und zwei internen Testblogs umgesetzt und beschreibe hier nun kurz meine Erfahrungen zu dem Thema Multi-Subdomains unter WordPress. [...]
Hallo Erik,
In dem Beitrag meinen Sie, “[Die Lösung mit den SubDomains] lässt sich mit einer einfachen switch/case-Routine auch noch erweitern, um … für verschiedene SubDomains zum Beispiel auch die passende Sprache auszuwählen”
Genau das versuche ich bisher erfolglos. Wie sähe die switch/case Funktion denn aus, damit z.B. bei de.meinblog.de die deutsche Sprachdatei “wp-includes/languages/de_DE.mo” geladen wird, bei fr.meinblog.de allerdings “wp-includes/languages/fr_FR.mo”?
Dankeschön & guten Rutsch ins neue Jahr!
Hallo Erik,
vielen Dank für diese genialen Zeilen – funktioniert ganz prima.
Allerdings habe ich auch ein kleines Problem:
‘www.domain.de’ und ‘domain.de’ haben mich vorher zu meinem Blog gebracht.
Wordpress benutzt den Prefix www_domain_de_
Beim Aufruf von ‘domain.de’ möchte die Installationsroutine nun aber eine neue Instanz installieren mit dem Prefix domain_de_
Gibt es eine einfache Möglichkeit beide Adressen auf meinen Blog zu lenken?
Gruß aus Berlin,
Martin
[...] Geht das nicht einfacher? – Ja! Es geht. Nicht nur mich hat diese Updaterei gestört. Und da WordPress freie Software ist, kann jeder, der Ahnung hat und den etwas stört, die Software weiterentwickeln. Gestern fand ich auf OPEN-SOURCED-BRAIN eine Beschreibung, wie eine WordPress-Installation mit wenigen Schritten so angepaßt werden kann, daß sie für mehrere Blogs nutzbar ist. Weitere Hinweise dazu stehen auch bei Brandt-aktuell. [...]
@60
if ($arrPrefix[0]==’de’) {define (‘WPLANG’, ‘de_DE’);}
if ($arrPrefix[0]==’pl’) {define (‘WPLANG’, ‘pl_PL’);}
if ($arrPrefix[0]==’fr’) {define (‘WPLANG’, ‘fr_FR’);}
siehe http://www.veloblog-oder-neisse.eu/ bzw.
http://fr.veloblog-oder-neisse.eu/
http://pl.veloblog-oder-neisse.eu/
Viele Grüße
C.
Für alle, die diese Lösung für ein WordPress Blog bei 1und1 realisieren möchten: Es gibt ein Problem wegen dem bei 1und1 serverseitig eingestellten automatischen URL-REWRITE von {sub.domain.tld} auf {www.sub.domain.tld} Mechanismus!
Ich gehe dabei davon aus, dass {sub.domain.tld} identisch mit {www.sub.domain.tld} sein soll.
Mit der – echt genial einfachen und ansonsten super funktionierenden – Lösung von Erik werden solche domains von wordpress gesondert behandelt. In Folge: WordPress verlangt beim Aufruf der {sub.domain.tld} SOWIE bei {www.sub.domain.tld} eine gesonderte Einrichtung.
Ohne mich in die Untiefen der Apache-htaccess jetzt vertiefen zu müssen, habe ich mich daher entschlossen, eine Subdomain {401.domain.tld} einzurichten und diese über {www.401.domain.tld} erstmalig aufzurufen. Damit legt WordPress ein Table-Set mit der Prefix “www” an.
Egale welche Subdomain ein User nun aufruft, wird nun immer der “blog” der {401.domain.tld} aufgerufen. In diesem schreibe ich einen freundliche 401-Beitrag und gleichzeitig eine Blogroll zu allen vorhandenen {sub.domain.tld}’s.
Wenn jemand eine besser Lösung (z.B. via .htaccess urlrewrite) kennt, bitte um Posting.
[...] Der Code ist eine Mischung aus den Blogs von “Open Source Brain” und “CBSchmidt“. Als Beispiel dient hier jetzt mal die Subdomain “blog1.domain.tld” als Ursprungs-Standard-Blog. Bei dieser Subdomain wird auf die Datenbank-Tabellen mit dem Präfix “wp_” verwiesen, welche die Standard-Tabellen der aktuellen Datenbank darstellen sollten. Natürlich nur, wenn das Präfix bei der Installation nicht geändert wurde. Jede weitere Subdomain legt bei der Installation neue Tabellen an, die die entsprechende Subdomain als Präfix erhalten. Beispiel: “blog2.domain.tld” erhält Tabellen mit dem Präfix “blog2_”. Die Installation neuer Blogs funktoniert nach dem ändern der wp_config.php ziemlich einfach. Man registriert sich bei seinem Provider eine neue Subdomain und lässt diese auf den WordPress-Ordner verweisen. Dann gibt man bei der Subdomain “blog2.domain.tld” im Browser einfach blog2.domain.tld/wp-admin/install.php ein und schon erstellt man sich innerhalb weniger klicks ein neues Blog. [...]
hallo ich wollte gerne meine .com seite in englisch oder mehrsprachig und meine .de seite in deutsch. sie sollen aber auch bei google als verschiedene seiten gefuden werden. die kommentare sollen dann halt auf de nur deutsch sein, wobei die post von mir die selben bleiben. aber ich kapiers einfach nicht und wollte fragen ob mir jemand helfen kann. viele grüße und danke
Das haett ich nicht gedacht
[...] Multi (Sub-)Domain WordPress von Erik Range [...]