123 Multihost
Mit dem Wordpress-Plugin 123 Multihost ist es möglich, eine WP-Installation unter mehreren Hostnamen, also z.B. Subdomains, anzusprechen. Der Name “123″ ist angelehnt an ein Thema im Wordpress-Deutschland-Forum mit dem Titel “1 Blog – 2 URLs – 2 Themes” und wurde von mir zu “1 Blog – 2 URLs – 3 Probleme” erweitert. Es handelt sich hierbei nicht um eine Multi-User/Blog-Variante. Über alle URLs werden die selben Inhalte ausgegeben, da die Datenbank für alle identisch ist. Allerdings kann man diese Ausgaben jeweils anders gestalten. Es ist also eine Art Multiview-Konfiguration.
Was sind nun aber die drei Probleme?
- Mehr eine Voraussetzung, denn ein Problem ist die Tatsache, das alle Domains beim selben Webhoster gehostet werden müssen, auf den selben Webspace zugreifen und die selbe Datenbank ansprechen können. Konkret ist es so, das alle Adressen auf ein identisches Verzeichnis im Webspace verweisen sollten, nämlich dorthin, wo Wordpress installiert wurde. Alternativ könnten es auch mehrere Verzeichnisse sein, wobei man dann die WP-Installation vom Installationsverzeichnis auf die andere per Symbolischen Links mappen müßte.
- WP generiert auch für interne Links absolute URLs an Hand der Option ’siteurl’ (und ‘home’ ?). Hier greift nun das Plugin mit einem Filter für ‘option_’ ein und gibt anstelle das in der Datenbank hinterlegten Wertes einfach den Serverparameter ‘HTTP_HOST’ (plus vorangestelltem ‘http://’) zurück.
Das bedeutet auch, daß das Plugin derzeit nur bei WP-Installationen funktioniert, die nicht über ein Unterverzeichnis bezüglich des Hostnamens angesprochen werde. - Damit nun nicht alle Blog-Versionen mit den unterschiedlichen Hostnamen gleich aussehen, kann jedem Host ein eigenes Theme zugeordnet werden. Dies ist auf der Seite “Einstellungen -> 123 Multihost” im Adminbereich möglich. Wenn dort einem Host kein Theme zugewiesen wird, wird das normal eingestellte Theme verwendet. Im Ausgangszustand ist in der Hostliste nur der verfügbar, über den man gerade im WP-Admin eingeloggt ist. Weitere Hostnamen können hinzugefügt werden.
Und noch ein Hinweis. Damit alles so funktioniert, wie es soll, muß man beim Schreiben von Artikeln darauf achten, für interne Links und auch per Upload eingefügte Bilder oder andere Dateien immer nur relative URLs zu verwenden, also bspw. nicht :
http://putzlowitsch.de/wp-content/uploads/2006/12/plw123_multihost_0_1.zip
sondern
/wp-content/uploads/2006/12/plw123_multihost_0_1.zip
Für Uploads gibt es auf der Seite “Einstellungen -> 123 Multihost” im Adminbereich einen Schalter “Relative Upload-URL erzeugen”, der nach Aktivierung relative URLs beim Upload automatisch erzeugt.
Ein kleines Problem mit den relativen URLs will ich aber nicht verschweigen. Falls jemand komplette Inhalte, also nicht nur die Anrißtexte der Seite auf einer anderen Seite per RSS-Feed einbindet, funktionieren interne Links und Bilder dort nicht, weil auch im RSS-Feed nur relative URLs stehen.
Ab Version 0.14 ist das RSS-Problem behoben. Über die neue Option
[x] Relative URLs und GUIDs im Feed korrigieren
kann für URLs, die mit “/” beginnen, bei der Feedausgabe automatisch ein http:// und der Hostname vorangestellt werden, so das interne Links und die GUID in Feeds wieder standardkonform sind und auch funktionieren.
Ab Version 0.15 ist ein internes Problem mit einer falschen verwendeten Variable behoben. Über die neue Option “Hostname ermitteln” kann die “Strategie” zur Bestimmung des zu verwendenden Hostnamen festgelegt werden. Dies kann je nach Serverkonfiguration notwendig sein.
Ab Version 0.16 ist ein internes Problem mit einer falsch gesetzten Option behoben. Über die geänderte Option “Relative Upload-URL und Artikel-GUID erzeugen” wird jetzt auch für Artikel und Seiten eine GUID ohne Hostname erzeugt.
NEU: Ab Version 0.17 darf das Blog auch in einem Unterverzeichnis liegen. Ein Darstellungsproblem der Zuordnungsliste in WP 2.5.x wurde behoben.
Um an Hand eines praktischen Beispiels zu verdeutlichen, was als Ergebnis bei der Sache rauskommt, habe ich ein Blog mit drei verschieden Ansichten unter drei Subdomains konfiguriert:
- http://ein.gabedaten.de mit dem Deutschen Standardtheme
- http://aus.gabedaten.de mit einem aktuellen Theme
- http://var.gabedaten.de nacktes HTML (leere CSS-Datei)
Download: 123 Multihost Version 0.17
Zeitung
Hallo Ingo,
wenn Du jetzt noch die Server-Variable die zurückgegeben werden soll, variabel machen könntest, würde ich glatt meinen Hack in die Tonne hauen ;)
vG
Arno
Super Plugin. Herzlichen Dank an die Putzlowitscher Zeitung!
[...] 123 Multihost: eine Wordpressinstallation unter mehreren Domains vorgestellt von Putzlowitscher Zeitung [...]
Super Plugin, für alle, die zwei Seiten mit einem Backend bedienen wollen und ein wenig Template-Action nicht scheuen.
Genau, was ich gesucht habe Danke!
Moin,
meine Idee ist es, 3 Blogs aus einer Basis heraus zu betreiben und die Beiträge über die Kategorien zu trennen. Wie kann ich denn nun beim Aufruf einer Seite nur die Beiträge, welche einer bestimmten Katgorie (neben anderen) angehören, anzeigen lassen? (D.h. Blog1 über Kategorie Kat1, Blog2 über Kat2 usw) Eigentlich werden die Kategorien zwischen den Blogs nicht geteilt.
Da man die Templates pro URL festlegen kann, würde ich vermuten, dass man dort einfach irgendwo eine neue übergabe oder einen neuen Aufruf einer Funktion festlegen muss und die Sache gegessen ist ;)
Könntest du mir da viellеiсht weiterhelfen?
Danke im Voraus!
Gruß
Uli
Genau, für die eigentlichen Blogartikel kann man die Kategorie über die Funktion ‘query_posts’ festlegen. Diese muß z.B. in der index.php des Themes vor der Loop stehen, etwas so:
< ?php query_posts('cat=1,2,3,5'); ?>
< ?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
…
Am besten Du guckst Dir die Dokumentation zur Template-Funktion query_posts an.
Damit in der Sidebar auch nur die gewünschten Kategorien angezeigt werden, sofern überhaupt, kann man den Parameter ‘include’ bei der Funktion ‘wp_list_categories’ verwenden, z.B. so:
< ?php wp_list_categories('orderby=name&title_li=&include=1,2,3,5'); ?>
Dokumentation gibt es dazu auch, allerdings auf englisch:
http://codex.wordpress.org/Template_Tags/wp_list_categories
Vielen Vielen Dank, du hast mir sehr weitergeholfen, ich werde dich beim relaunch meiner Seiten erwähnen (damit du wieder nen Link mehr hast ;) )
Absolute TOP-Arbeit! Danke für deine Mühe!
Wenn man jetzt noch angeben könnte, welche Kategorie auf einem host bzw. eine subdomain angezeigt werden soll… Wäre esperfekt.
Hallo,
Super-Plugin. Möglicherweise löst es nämlich auch mein Problem: Ich möchte mit ein und demselben Blog mit einer domain eine Statische Site und mit einer anderen Domain den Blog anzeigen. Ich habe also das glеiсhe Theme zweimal unterschiedlich benannt hochgeladen – nur: wie mache ich das nun, dass bei dem einen Theme die Startsite und bei dem anderen der Blog, also die Datei home.php angezeigt wird? Es wirkt jedenfalls nicht mehr so kompliziert wie mein Ursprungsproblem. Ich würde mich über Hilfe sehr freuen.
Hi,
ich hab die Sache selbt gelöst: einfach das Theme kopiert und umbenannt, dann die Startsite im Editor leer gelassen, dafür in dem einen Theme den Text in das Seitentemplate geschrieben und in dem anderen Theme den Inhalt von home.php in das Seitentemplate + dem Zusatz
(dank an http://schnurpsel.de/letzter-beitrag-als-startseite-33/) daraufhin die Navigationsleiste oben selbst verlinkt und fertig.
Ja ja, nicht wirklich elegant, aber mir ist nix besseres eingefallen. Also danke nochmal für das Plugin, war echt hilfreich.
Prima das es geht. Ich wolle eigentlich schon schreiben, daß ich nicht wirklich einen Plan habe, wie man das machen könnte. Und ja, bei Schnurpsel gibt es so einige praktische Tips und Anleitungen :-)
[...] taugt. Was also tun? Der Zufall kam mir zu Hilfe. Ich entdeckte eines morgens beim Suchen im Netz dieses Plugin, von Putzlowitsch, der mir auch schon bei meinem Permalink-Problem geholfen hatte. Das Plugin [...]
[...] 123 Multihost [...]
Hallo Putzlowitsch! ? Große Fragezeichen? Wordpress ließ sich nicht auf Uniserver installieren, deswegen hab ich den Blog in ein Unterverzeichnis von Hosteurope gepackt, auf das die Uni weiterleitet. Nun sollen die Besucher aber nicht meine Verzeichnisstruktur in der Url sehen sondern nur das Unterverzeichnis plus Seitenname. Was muss ich tun? Multihost funkt nicht, offebar wird cs nicht geladen. Für Deine Hilfe wäre ich sehr dankbar.
Hochachtungsvoll, Sasan
Hallo Sasan,
123 Multihost ist auch eher nicht für Weiterleitungsgeschichten gedacht, sondern dafür, wenn man mehrer (identische) Blogs auf einem Webspace betreiben will, die unter verschiedenen Hostnamen ansprechbar sein sollen. Dazu müssen diese Hosts aber auf den selben Webspace konnektiert sein.
Ich habe auch nicht wirklich verstanden, was nun genau passieren soll bzw. was im Moment passiert. Deine Uni-Adresse ist bspw. meine-uni.de/name und das Blog ist bei Host-Europe unter mein-he.de/verzeichnis installiert. Was soll nun der Besucher sehen, wenn er die Seite aufruft? Wie erfolgt die Weiterleitung? Mit einem Redirect, in einem Frameset oder per echter DNS-Umleitung?
Hallo Putzlowitsch, danke für die schnelle Antwort. Ich weiß Multihost sehr zu schätzen, auch wenn es mir in diesem Fall nicht hilft.
Wenn die Uniadresse http://forschung2008.net lautet und im Moment per DNS auf (hosteurope) http://sasan.de/forschung2008 umgeleitet wird, hätte ich gerne, dass die Besucher nur http://forschung2008/Startseite usw. sehen (also nicht sasan.de) Ist das verständlich? Grüße, Sasan
Ja, so ist es verständlich :-)
Bin jetzt nicht sicher, aber was eventuell funktionieren könnte: Trage beim Wordpress bei den Allgemeinen Einstellungen als Blog-Adresse die Uni-Adresse ein.
Was mich nur wundert, wie kann man per DNS auf ein Unterverzeichnis umleiten!?
Kannst Du eventuell auch die echten Adressen verraten, damit ich mir das mal ansehen kann? Gegebenfalls auch nicht hier, sondern per E-Mail oder über PN im Wordpress-Deutschland-Forum (sofern Du da registriert bist :-).
Hallo Ingo,
läuft das Plugin auch unter WP2.5?
Danke
Simone
Hallo Simone,
habe grad mein Multihost-Testblog von WP 2.0.11 auf WP 2.5 umgestellt. Funktioniert alles bestens. Ich brauchte noch nicht mal Plugins oder Themes anpassen, sehr erfreulich.
Hallo Ingo,
der Downloadlink ist nicht ganz korrekt. Oder ist das so gewollt und nur wer denken kann findet den richtigen? Fänd ich gar keine so schlechte Maßnahme …
Für das Plugin trotzdem herzlichen Dank.
Hallo Michael,
das ist natürlich nicht so gewollt, allerdings, so als kleine Anfangshürde keine schlechte Idee… :-)
Danke für den Hinweis, habe den Fehler berichtigt.
[...] Zufall kam mir zu Hilfe. Ich entdeckte eines morgens beim Suchen im Netz dieses Plugin, von Putzlowitsch, der mir auch schon bei meinem Permalink-Problem geholfen hatte. Das Plugin [...]
Hallo,
ich habe den Tipp bekommen, dieses Plugin könnte das, was ich vorhabe, bin jetzt aber aktuell etwas unsicher. Ich beschreibe mal kurz, was ich vorhabe.
Ich möchte verschiedene Blogs auf einer Domain laufen lassen, unterschieden wird per Subdomain. Alle Subdomains sollen dieselben Tags und Kategorien haben, die Artikel sollen aber jeweils nur auf einer Subdomain erscheinen.
Ist das hiermit machbar, oder muss ich doch auf WPMU zurückgreifen. Freue mich sehr über einen kleinen Tipp / Anregung / Denkanstoss…
Liebe Grüße
Uwe
[...] einfach zum Spass habe ich mit der Hilfe von 123-multihost den glеiсhen Seiteninhalt von http://www.achim-straub.de unter der Adresse http://www.schneesportlehrer.biz mit [...]
Hallo,
ein Freund hat mich darauf aufmerksam gemacht, dass es durch das Veröffentlichen eines Bloginhalts unter 2 Domains zu Problemen mit double content bei google kommen kann. Ist da was dran? Kann man das umgehen?
Hi! Super Plugin! Geht das ganze auch ohne Subdomains? Also quasi: http://www.ersteseite.de und http://www.zweiteseite.de … Danke schonmal! ;)
Ja klar, Subdomain ist nur als Beispiel angeführt, es geht auch mit Domains. Aber es geht nur auf (Sub)Domain-Ebene, was nicht funktioniert ist z.B.:
- example.org
- example.com/wordpress
Also einmal mit und einmal ohne Unterverzeichnis funktioniert nicht.
ok! Danke dir!
[...] habe ich das Plugin 123 Multihost von Putzlowitsch entdeckt. Und: ich bin begeistert! Denn mit Hilfe diesem WordPress-Plugin kann man mit [...]
huhu, ich hätte da noch eine frage: was muss ich bei wordpress unter “einstellungen” -> “permalinks” aktivieren bzw. einstellen, damit meine url’s so aussehen wie hier auf der seite? wäre nett, wenn mir jemand höfen könnte. Danke! :) lieben gruß, maggy
Also ich habe eingestellt:
Allgemeine Optionen
(o) Tag und Name
Optional
Kategorie-Basis [themen]
Damit das generell funktioniert, sind noch folgende Punkte zu beachten:
http://codex.wordpress.org/Using_Permalinks
hhmmm ok.
bei “Kategorie-Basis” einfach “themen” eintragen?
ansonsten denke ich, das mod_rewrite & co installiert sind und es funktionieren sollte.
es geht mir nämlich im großen und ganzen um dein multihost-tool. ich habe eine db mit einem blog auf 2 versch. url und designs. alle meine Navilinks sind in den dateien statisch angelegt und ich habe sie per id’s verlinkt. ist auch alles schön und gut, nur geht das ganze leider nicht mit der url die über dein tool auf ein anderes theme verweist. denn da laufen die links mit den page-id’s ins leere.
das liegt doch an den nicht aktivierten permalinks, oder?
gruß, maggy
Nein, mit den Permalinks hat das nichts zu tun.
Das Multihost-Plugin manipuliert nur die Wordpress bzw. Home-Adresse und die Theme-Zuordnung. Es sollte ohne Permalinks auch gehen.
hhmmm ok.
mal eine andere frage – dürfen denn beide domains auf das glеiсhe verzeichnis gelegt sein? also quasi http://www.url-haupt.de auf das verzeichnis “wordpress” und http://www.url-123multihost.de auch auf das verzeichnis “wordpress” ? Könnte es daran liegen?
Beide Domains müssen auf dasselbe Verzeichnis zeigen, sonst funktioniert es eh nicht. Steht oben bei 1. erklärt.
so, dieser beѕсhеidеne fehler lag an einem codesnipsel zur ausgabe und auflistung der zuletzt geposteten artikel … hatte also mit nix anderem zu tun … nur mal so zur info! ;)
Sehr schönes Plugin, jedoch wenn man mit verschiedenen Themes arbeitet und dort jeweils Beiträge von unterschiedlichen Kategorien anzeigt, also mit “” arbeitet, dann funktioniert die Suche nicht mehr.
Moin,
kann ich mit dem Plugin auch mehrere Themes (statt in unterschiedlichen Domains) in unterschiedlichen Unterverzeichnissen derselben Domain laufen lassen? Also bspw so:
zzz.dyndns.org/full_version/
zzz.dyndns.org/slim_version/
Grüsse
Nein, das funktioniert nicht. Dafür ist das weiter oben verlinkte Domain Mirror Plugin geignet.
Hi,
ich beschäftige mich seit kurzem mit dem Plugin. Auf meinem lokalen Testsystem unter xampp funktioniert auch der Aufruf unterschiedlicher Themes je nach aufgerufener Testdomain.
Allerdings gehen meine Links nicht auf localhost/wordpress sondern http://domain.vs/wordpress/. Damit ist die Navigation auf der Seite nicht möglich. Das muß sich doch irgendwo einstellen lassen.
Danke.
Welche Links denn genau? Die Permalinks zu Artikeln und Seiten z.B.?
Wieso sollen die auch auf localhost gehen, die zeigen immer auf die Domain, über die die Seite aufgerufen wird.
Hi,
danke für die Antwort.
Meinte die Permalinks.
Wenn ich das Plugin umstelle, bekomme ich schon die passenden URLs, aber die Navigation ist dann nicht mehr nutzbar.
Ich habe das Ganze in xampp/wordpress installiert.
VHosts angelegt (domain1.vs, domain2.vs), die alle auf xampp/wordpress verweisen.
Aber sobald ich Multihost anschmeiße, und ich von domain1.vs auf das Archiv klicke, dann bekomme ich als Pfad http://domain1.vs/wordpress/2009/09/ und das liefert mir einen Internal Server Error.
Wenn ich die Multihost-Option im Plugin wegklicke, dann gehen die Links auf domain1.vs auf http://localhost/wordpress/2009/09/
Oder liegt es daran, dass es ein lokales Testsystem ist?
Danke.
Hmmm, also der erste Pfad ist schon richtig, so soll es zumindest sein.
Steht denn im Serverlog noch etwas Genaueres zum “Internal Server Error”? Möglicherweise ist es was mit einer Endlosschleife.
Ich habe jetzt das Plugin zugegebenermaßen noch nicht mit WP 2.8.x getestet. Nicht daß sich da was gändert hat. Ich guck mal nach…
Die Meldung lautet:
[Wed Sep 30 12:42:40 2009] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use ‘LimitInternalRecursion’ to increase the limit if necessary. Use ‘LogLevel debug’ to get a backtrace., referer: http://domain1.vs/
Gut, “internal redirects” hat was mit mod_rewrite zu tun. Wie sieht denn Deine .htaccess aus?
# BEGIN WordPress
RewriteEngine On
RewriteBase /gernPress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
# END WordPress
Mehr nicht?
Irgendwie sehe ich da nichts Verdächtiges. Außer viellеiсht der Unerschied zwischen RewriteBase und dem Aufrufpfad in der RewriteRule. Aber das hat ja Wordpress vermutlich so erstellt, dann wird es schon stimmen :-)
Ich habe auch mal mit WP 2.8.4 bei mir getestet. Das Plugin funktioniert in meiner lokalen Installation (Windows 2000).
Du könntest mal versuchsweise im Plugin die Option “Hostname ermitteln” ändern. Ist aber eher nur stochern im Nebel.
Danke für die Hilfe. Das habe ich auch schon alles in den versch. Variationen probiert.
Dann hoffe ich mal, dass es funktioniert, wenn ich es in Produktivumgebung online einsetze. Zur Not meld ich mich nochmal. Könntest Du mir bitte evtl. deine E-Mail-Adresse mailen, dann können wir das so besprechen und hier nur das Ergebnis posten.
Danke.