MU Wordpress und XML Sitemaps
Nachdem ich meine Web-Seiten von einem einzelnen, “normalen” Wordpress auf ein einziges Multi-User (MU) Wordpress umgezogen habe, kam gleich das Problem mit den XML Sitemaps auf. Da mein Sitemap-Plugin eine direkt herunterladbare Datei in das DocumentRoot-Verzeichnis meines Web-Servers schreibt, ist diese Datei bei MU Wordpress für alle Web-Seiten (Sites und Blogs) gleich. Die Lösung ist recht einfach:
Da ich den Datei-Namen der zu erzeugenden XML-Sitemap-Datei für jedes Blog bestimmen kann, bennen ich die Datei nach einem einheitlichen Schema: sitemap-<http-host>.xml.
Da ich meine Sitemaps bereits bei Google & Co. unter dem Namen sitemap.xml registriert habe, wäre ein Umstieg auf den neuen Dateinamen etwas lästig. Daher habe ich die Apache RewriteRules herangezogen:
# Sitemap Korrektur
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} sitemap.xml.gz$
RewriteRule sitemap.xml.gz$ /sitemap-%{HTTP_HOST}.xml.gz [L]
# Ende Sitemap Korrektur
Die vier Zeilen bewirken, dass Anfragen an die Datei sitemap.xml.gz — sofern nicht vorhanden — an die Datei sitemap-<Hostname>.xml.gz (intern) weitergeleitet werden.

24.07.2009 um 17:18
Genau nach so einer Lösung hab ich gesucht, die existierenden Sitemap-Plugins funktionieren ja leider für MU alle nicht ohne weiteres. Deine Lösung kann leider nicht ganz nachvollziehen, könntest Du das Umbennungs-Schema nochmal kurz erklären?
Was gibst Du im Plugin als Sitemap-Namen an? Trägst Du den bei automatischer Erkennung oder unter “eigener Pfad” ein?
“sitemap-.xml” – ist das hier ein Parameter oder nur Dein Platzhalter, soll heissen, gibst Du den Host-Name hier jeweils einzeln genau ein, z.b. “sitemap-meinedomain.de.xml”?
Ich verwende das Multi Site Manager Plugin für unterschiedliche Domains und damit scheinen die rewrite rules wohl leider nicht klarzukommen. Ich hab jetzt pro Domain eine sitemap-meinedomain1.xml, sitemap-meinedomain2.xml usw im root Verzeichnis, aber irgendwie funktioniert das ganze nicht, hast Du vielleicht eine Idee?
27.07.2009 um 14:17
Hallo Chris,
da ist mir bei dem Text “sitemap-.xml” etwas abhanden gekommen: sitemap-<Hostname>.xml.
Das Problem ist ja, dass das Sitemap-Plugin eine reguläre Datei in dem Verzeichnis des Blog-Systems ablegt — unabhängig vom eigentlichen Blog. Auf diese Datei wird direkt zugegriffen, ohne das Wordpress da noch etwas macht.
Da nun alle Hosts in der gleichen Blog-Installation (Verzeichnis) liegen, wird ja immer die gleiche Datei ausgeliefert, egal welches Blog / Domain angefragt wird. Die Lösung ist nun, für jedes Blog (Url) das Sitemap-Plugin so zu konfigurieren, dass jeweils ein anderer (eindeutiger) Dateiname verwendet wird. Das ist dann nicht die “automatische Erkennung”, sondern eben der Name, z.B. “sitemap-meinedomain.de.xml” — wie Du schon geschrieben hast.
Jetzt kannst Du z.B. dem Google Webmaster Tool diesen Dateinamen als Sitemap-URL mitteilen. Da ich aber bereits meine Sitemaps dort eingetragen hatte und nicht alles ändern wollte, habe ich zusätzlich noch ein Rewrite für die sitemaps gemacht: Es wird immer auf die URL meinedomain.de/sitemap.xml zugegriffen, aber dann intern auf die Datei sitemap-meinedomain.de.xml weitergeleitet.
27.07.2009 um 14:25
Danke für die ausführliche Antwort! Das Prinzip ist ja genial, so spart man sich in den webmaster Tools einiges an Arbeit und weniger fehleranfällig ist es auch, wenn man immer nur sitemap.xml angibt und die individuellen sitemap-dateien erst per rewrite umlenkt. Jetzt muss ich nur noch probieren, warum es bei mir nicht auf anhieb, vermutlich sinds die Einstellungen im Sitemap Plugin selbst.Danke für den super Tipp, genau was ich gesucht hatte.
5.08.2010 um 04:01
Vielen Dank für die Informationen,
Dies half,
Geist! ! ! ! !
technology-sae.blogspot.com