Zurzeit bin ich damit beschäftigt, all meine WordPress-Installationen zu einer WordPress µ Installation zu fusionieren. Zunächst klappt das auch ganz gut, nur die Übernahme von Top-Level-Domains ist nicht ganz so einfach. Einzelnen Blogs einzelne Domains zuzuordnen ist zwar mit dem (o.g.) Domain Mapping Plugin problemlos möglich, allerings können keine Adressen mit dem Subdomain-Zusatz WWW eingerichtet werden. Also habe ich mich auf die Suche nach einer Lösung gemacht, die ich letztendlich im englischsprachigen Support gefunden habe.
Der Benutzer ‘cvladan’ stellt eine Lösung vor, bei der er kleine Änderungen an den Dateien des Plugins vornimmt:
Die domain_mapping.php ändert er in Zeile 55 von
$wpdb->escape( preg_replace( "/^www\./", "", $_POST[ 'domain' ] ) );
in:
$wpdb->escape( $_POST[ 'domain' ] );
außerdem für die Anpassung im Backend in Zeile 112 von:
echo "http://www.<input type='text' name='domain' value='' />/";
in:
echo "http://<input type='text' name='domain' value='' />/";
Des weiteren nimmt er eine Änderung in der sunrise.php vor:
$wpdb->escape( preg_replace( "/^www\./", "", $_SERVER[ 'HTTP_HOST' ] ) );
wird in Zeile 10 geändert in:
$wpdb->escape( $_SERVER[ 'HTTP_HOST' ] );
Nun besteht die Möglichkeit, im Administrationsmenü des Plugins (Werkzeuge -> Domain Mapping) auch Subdomains hinzuzufügen.
Um die Domain also mit www anzeigen zu lassen, muss die evt. schon vorhandene Einstellung der Domain ohne www gelöscht werden und die Domain mit www hinzugefügt werden.
SEO-Optimierung vornehmen
Auf die erste Freude, dass der Blog nun mit WWW aufgerufen werden kann, folgt jedoch schnell wiede eine Ernüchterung, denn nun steht ein neues Problem im Raum: Wie gehe ich mit Seitenaufrufen um, die ohne das WWW getätigt werden. Etwa von alten Verweisen von anderen Websites oder allgemein wenn jemand den Artikel ohne WWW aufruft? Die Domain ohne WWW einfach direkt auf die mit WWW umzuleiten ist nicht suchmaschinenfreundlich, da es dann nicht zu einer 301-Weiterleitung kommt. Also habe ich mir folgende Lösung überlegt:
Legen Sie unter dem Hauptverzeichnis Ihrer WordPress-Installation einfach einen Ordner namens 301 an (also auf der selben Ebene mit wp-content, wp-admin usw.). Dort speichern Sie eine index.php mit folgendem Inhalt ab:
<php $domain = $_SERVER["SERVER_NAME"]; $pfad = $_SERVER['REQUEST_URI']; Header("HTTP/1.1 301 Moved Permanently"); Header("Location: http://www.$domain$pfad"); exit(); ?>
Als nächstes verlinken Sie die Domain ohne WWW auf dieses Verzeichnis. Die Domain wird die index.php aufrufen und alle Anfragen suchmaschinenfreundlich per 301-Redirect auf die Adresse mit WWW umleiten.
Dies können Sie bei allen Domains ohne WWW machen, deren Blogs auch mit WWW aufrufbar sein sollen, denn die Datei liest automatisch aus, welche Domain gerade aufgerufen wurde.
Also …
www.example.com verweist auf das Hauptverzeichnis der WPMU-Installation,
example.com verweist auf den Ordner 301 unter dem Verzeichnis der WPMU-Installation
Hi Matthias,
Du kannst dir garnicht vorstellen, wie sehr du mir weitergeholfen hast.
Vielen Dank!
Das freut mich. :)
Hi Matthias,
ich habe das Domain-Mapping nun durchgeführt. Es klappt auch wudnerbar:
ich weise dem Blog eine “www”-Domain zu und rufe beispielsweise http://blog.de auf und es erscheint http://www.blog.de.
Super – bis hier.
Nun – die SEO-Anpassungen für die Blog-Domain:
ich habe die beschriebene index.php-datei angelegt und in den 301-Ordner abgelegt und in das …/wordpress-mu geladen.
Die Domain auf der WPMU liegt weist auf …/wordpress-mu und die Blog-Domain habe ich also auf …/wordpress-mu/301 zugewiesen.
In den tool-Einstellungen habe ich wieder eine “Nicht-www”-Doamin erstellt (Bsp.:blog.de)
Rufe ich nun blog.de im Browser auf, erscheint: http://www.www.blog.de
Warum doppelter “www”-Präfix?
ich bin mir sicher, dass ich deine Schritte korrekt ausgeführt habe.
Hast du dazu eine Idee?
Danke für den Tipp. Ich stelle auch gerade sämtliche Blogs um auf WordPress 3.0 ;)