Willkommen!

Durch Ihre Registrierung bei uns können Sie mit anderen Mitgliedern unserer Community diskutieren, teilen und private Nachrichten austauschen.

Jetzt anmelden!

Wordpress 3 Multidomainfähig machen

floES

New member
Registriert
19. Dez. 2005
Beiträge
2.072
Hat sich schon jemand dran gewagt, Wordpress 3 multidomainfähig zu machen?

Für die Version 2 gibt's da eine Anleitung von McDot, die ich hier gerne auch noch mal Verlinke, die vielleicht sogar auch für Version 3 funktionieren würde, aber auf keinen Fall die Vorteile der neuen Multisite-Option nutzen würde: Wordpress Multidomain-fähig | Domain Knowhow | Domain Smalltalk

Zur Version 3: hier bringt Wordpress theoretisch schon alles mit, um mit einer Installation mehrere Blogs zu betreiben, jedoch ist man beschränkt auf die Auswahl: Subdomains oder Unterverzeichnisse.

Das ganze zu modifizieren ist natürlich nicht sonderlich schwierig, die Herausforderung ist, dies auch update-safe zu gestalten.

Vielleicht hat da jemand schon einen Ansatz?

In der ms-edit.php wird leider geprüft, ob die Subdomains keinen Punkt enthält und außerdem wird noch "$current_site->domain" hinten dran gehängt. An der Stelle müsste man wohl irgendwie eingreifen - aber wie (update-safe)?? Gibt's da irgendwelche logic hooks oder so?
 
Meine Lösung funktioniert auch mit WP 3.0 einwandfrei.

Die Multisite Möglichkeiten von WP 3 beruhen darauf, dass man nun das Standard WP mit WPMU verschmolzen hat. Für Subdomains, z.B. als Free Blog funktioniert es auch (nach ein paar Stolpersteine). Die Multidomainlösung (mit Plugin 1193384369_njsl-sites-009.php) ist theoretisch auch Funktionstüchtig, nur gibt es aktuell ein Cookie Problem mit dem Einloggen im Backend der zusätzlichen Domains. Da soll es ein Workaround geben, habe ich aber noch nicht getestet. Laut wp-testers Mailingliste wird das Problem im nächsten Update behoben.
 
Mit der Multisite-Variante hätte man die Blogs einfach noch schöne getrennt (Bilderverzeichnisse, User-Rechte,...)

Ich verstehe nicht, warum die sich auf Subdomains beschränkt haben. Das ganze manuell zu ändern wäre ja ein Klacks.

Na, vielleicht fällt ja noch jemandem was schlaues ein...
 
Auch meine Lösung müsste man so abändern können, dass z.B. jede Domain ein eigenes wp-content Verzeichnis bekommt. Viel mehr als ein paar .htaccess Zeilen dürften dafür nicht anfallen. Müsste ich demnächst mal testen.
 
Ich hab das jetzt hinbekommen, aber fand das schon ein abendfüllendes Programm. So out-of-the box funktioniert das ja erstmal gar nicht - die Ankündigungen für WP3 waren da meiner Meinung nach missverständlich. Otto Normaluser wird das wohl kaum so einfach hinbekommen. Die WPMU-Integration will erstmal aktiviert werden, dazu darf man in diversen Datein rumeditieren und für echte Multi-Domain-Fähigkeit braucht es immer noch ein Plugin. Mein Fazit: eine holprige Angelegenheit, aber wenn es läuft dann läufts ;)
 
Ich habe mich unterdessen mit der Richard-Version etwas angefreundet und dahingehend erweitert, dass man für alle neu angelegten Domains die Konfiguration (Permalinks, Plugins,...) der Master-Domain übernehmen kann. Da ich keinen eigenen Blog habe, poste ich es mal hier, vielleicht hilfts jemandem...

1.) in der wp-config wird der Prefix für die "Master-Domain" fest verdrahtet:
PHP:
define('DEFAULT_DB_PREFIX','masterdomaintld_');
Wobei "masterdomaintld_" natürlich der Prefix für EURE Master-Domain sein muss.

2.) nun wird die Datei /wp-content/install.php erstellt:

PHP:
 function wp_install_defaults($user_id) {
    global $wpdb, $wp_rewrite, $current_site, $table_prefix;
    // hier darf nun erstmal alles an Voreinstellungen vorgenommen werden, was für eine neue Domain gelten soll (Standardkategorien, Eröffnungspost,...)
    // dies kann z.B. aus der function wp_install_defaults() aus der Datei /wp-admin/includes/upgrade.php kopiert werden
    // [...]
if ( $wpdb->prefix != DEFAULT_DB_PREFIX ) {
$options_to_copy = array (
                        'users_can_register',
                        'start_of_week',
                        'use_balanceTags',
                        'use_smilies',
                        'require_name_email',
                        'comments_notify',
                        // [...]
                        // Dies ist eine Liste derjenigen Optionen, die von der Masterdomain kopiert werden sollen. (Alternativ könnte man natürlich auch umgekehrt mit einer Ausschlussliste arbeiten...)
                        );
                            
    foreach ( (array) $options_to_copy as $option_to_copy ) :
        $wpdb->set_prefix(DEFAULT_DB_PREFIX);
        $newvalue = get_option($option_to_copy);
        $wpdb->set_prefix($table_prefix);
        update_option( $option_to_copy, $newvalue );
    endforeach;
}
}
?>
Damit werden künftig bei jeder neu eingerichteten Domain alle oben definierten Optionen kopiert. Man muss also nicht mühsam alle Plugins aktivieren und sonstige Standard-Einstellungen vornehmen, die ohnehin für jede Domain gelten sollen.

3.) Den Table-Prefix habe ich noch dahingehend angepasst, als Richards Variante nicht PHP 5.3-kompatibel ist und außerdem würde ich den Bindestrich nicht einfach unterschlagen, vielleicht porjektiert man ja mal beide Versionen einer Domain:
PHP:
$table_prefix = preg_replace(array('/^www\./','/\./','/-/'), array('','_','_'), strtolower($_SERVER['HTTP_HOST'])).'_';
 
Zuletzt bearbeitet:
OK, ich werde die geänderte Version mal durchtesten und dann könnten wir die komplette Prozedur sauber niederschreiben. OK FloEs?

Wie per PM besprochen, entfernen wir noch die www Abfrage aus der php Zeile und bauen sie dafür in .htacces ein. Müsste dann in etwa so aussehen (noch ungetestet):

Code:
## www für alle Domains erzwingen ##
RewriteCond %{HTTP_HOST} !^www\.(.*)$ 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
 
Inzwischen habe ich sogar die theoretische Lösung für die Wordpress-3-Multisite-Option gefunden: in der function wpmu_create_blog() wird nämlich auch die wp_install_defaults() aufgerufen, sowie am Schluss noch ein logic hook names 'wpmu_new_blog' - hier könnte man jeweils eine eingegebene Subdomain in einer echte Domain umwandeln.

Da Wordpress 3.0 bei der Subdomain keine Punkte erlaubt, müsste man hier ein Schema entwickeln, wie man die kodiert, also z.B. domain-1-tld = domain.tld oder ähnliches. (doppelte Bindestiche sind auch unzulässig)

Wobei die zuvor genannte Lösung doch auch ganz gut zu funktionieren scheint, von daher werde ich das wohl jetzt nicht implementieren. Ich wollte den Gedanken aber trotzdem teilen :-)

Vielleicht macht's ja ein anderer?
 
hmm, ich dacht eigentlich da kommt das neue WP und ist aus dem Stand multidomainfähig so wie es seit Ewigkeiten kommuniziert wurde.

.. ihr nehmt mir gerade ein wenig die Illusion :-((
 
hmm, ich dacht eigentlich da kommt das neue WP und ist aus dem Stand multidomainfähig so wie es seit Ewigkeiten kommuniziert wurde.

.. ihr nehmt mir gerade ein wenig die Illusion :-((

Stefan, da hast Du was falsch verstanden. Es war immer davon die Rede, dass das neue WP 3.0 Multiblogfähig sein würde. Auch dass die wpmu Funktionalitäten eingebaut werden. Von MultiDomain war aber nicht die Rede.
 
Wollte nur mal anmerken, dass ich diesen Thread super finde - ich habe dafür auch gleich mal diese fast vergessene Funktion der "Bewertung" eingesetzt ...

So - das war's von mir - weiter mit den Experten ...
 
Von MultiDomain war aber nicht die Rede.

ok, hab ich nicht gewusst/falsch assoziert ;-))

Wär doch aber eigentlich aus meiner Sicht "das Ziel der Ziele" sowas mal "out of box" als CMS zu "erfinden". Wer erstmal selbst am anderen Ende des Netzes sitzt wird sowas doch excellent gebrauchen können :-))

.. aber was beschwer ich mich, wenn ich sehe was uns die ganzen schicken CMS heute ermöglichen :dancing:

Gruß Stephan
 
Zum Thema Bilder-Upload-Verzeichnisse: um diese sauber zu trennen fügt man in obiger wp_install_defaults()-Funktion ganz zum Schluss (vor der letzten geschweiften Klammer) hinzu:

PHP:
update_option( 'upload_path', 'media/'.$table_prefix );
Ich habe hier gleich mal einen neuen Ordner "media" verwendet (den man natürlich noch anlegen muss) um ein wenig vom Standard abzuweichen. Die Bilder etc. liegen dann künftig in media/domaintld_/

U.u wäre es auch sinnvoll das Verzeichnis wp-content umzubenennen, aber hiervon habe ich erstmal abgesehen, denn in Bezug auf das Multisite-Feature heisst es:
Warning: Networks may not be fully compatible with custom wp-content directories.
- und wer weiss, ob man es nicht doch noch mal braucht.
 
Noch ein kleines Update: bei der derzeitigen Lösung hat man folgendes Problem(chen): will man eine neue Domain einrichten, so wird man zunächst mal die DNS-Einstellungen entsprechend ändern und dann darauf warten, dass diese auch aktiv sind.

Wenn nun in dieser Zeit jemand die Domain aufruft, wird er gleich zur Installations-Seite geleitet und kann sich selbst einen Admin-Account einrichten und die Domain quasi vollständig für sich nutzen.

Daher ist es ratsam, in der wp-config.php eine neue Konstante zu definieren:

PHP:
define('MULTIDOMAIN_INSTALLATION_PASSWORD','meingeheimespasswort');
und dann in der zuvor genannten install.php ganz oben einfügen:

PHP:
parse_str(parse_url($_SERVER['HTTP_REFERER'],PHP_URL_QUERY),$referer);
if ( ( $_GET['password'] != MULTIDOMAIN_INSTALLATION_PASSWORD && empty($_GET['step']) )
    || 
    ( $referer['password'] != MULTIDOMAIN_INSTALLATION_PASSWORD && $_GET['step']==2 )
    || 
    !defined('MULTIDOMAIN_INSTALLATION_PASSWORD') ) {
    die();
}
Damit lässt sich die Installation nur noch vornehmen, wenn man die Domain über /wp-admin/install.php?password=meingeheimespasswort aufruft.
 
Zuletzt bearbeitet:
Hihi, jetzt habe ich das ganze noch so erweitert, dass gleich ein frisches Template für jede Domain mit angelegt wird. Langsam wird's echt praktisch!
 
Ich bin heute leider mit anderen Sachen beschäftigt, aber morgen werde ich mich damit eingehend befassen und eventuell, mit Hilfe von FloEs, was "fertiges" zusammenstellen.
 
Hi,


könnt Ihr mir mal sagen was ich mir unter "multidomainfähig" vorstellen darf ? Steige da nicht durch.

Gruß Lakisha
 

Who has viewed this thread (Total: 1) Details anzeigen

Wer hat dies thread angesehen? (Gesamt: 3) Details anzeigen

Neueste Themen

Beliebte Inhalte

Besonderer Dank

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
68.944
Beiträge
378.018
Mitglieder
6.781
Neuestes Mitglied
cekintau

Freunde des Domain-Forums

Zurück
Oben