Dienstag, 24 Januar 2012 08:24

Valide und vollständige XML Sitemap in Joomla 1.7 für eine mehrsprachige Website

geschrieben von 
Artikel bewerten
(0 Stimmen)

Bei einem Projekt sollten wir eine mehrsprachige Website mit viel Content basierend auf Joomla 1.7 erstellen. Wie es schon bekannt ist bietet Joomla 1.7 die Mehrsprachigkeit direkt aus der Box. Für die Sitemap-Generierung nahmen wir die XMAP Erweiterung. Leider führte die Einschaltung von suchmaschinenfreundlichen URLs, egal ob es Joomla SEF URLs waren oder man eine spezielle SEO Erweiterung verwendete, zur Einschränkung der aufzulistenden URLs. Es wurde nur die URL in einer Sprache gezeigt.

Schon fast standardmäßig nehmen wir XMAP Erweiterung für das Erzeugen von Sitemaps. XMAP erlaubt beides, sowohl HTML als auch XML Sitemaps zu generieren – XML für die Suchmaschinen, HTML für die normalen Besucher. Diese Erweiterung ist von guter Qualität und wird ständig weiterentwickelt. Das Problem besteht aber in dem Aussehen der Sitemap-URL. Eine übliche URL für XMAP Sitemap sieht so aus: http://WEBSITE.com/index.php?option=com_xmap&view=html&id=3 Dieses URL kommt durch keine Validierung. Für dieses Problem gibt es folgende Lösungswege.

Lösung 1. Die Benutzung von SEF URL direkt in Joomla

Sie benutzen SEF URL von Joomla oder Ihrer SEO Erweiterung. Da muss man einfach eine Regel erstellen, dass dem realen URL ein SEF URL in der Art: http://WEBSITE.com/sitemap.xml entspricht. Leider funktioniert diese Lösung nicht immer, warum auch immer.

Lösung 2. Das dynamische Generieren der Sitemap-Datei über htaccess

Sie erzeugen ein PHP Script z.B. mit dem Namen sitemapgenerator.php mit dem folgenden Inhalt:

<?php
echo file_get_contents("http://WEBSITE.com/index.php?option=com_xmap&view=xml&id=1");
?>

id-Parameter entspricht hier dem Sitemap ID, welches man als XML haben möchte.

In der .htaccess direkt unter der Zeile „RewriteEngine On“ fügt man folgende Zeile ein.
RewriteRule http://WEBSITE.com/sitemap.xml /sitemapgenerator.php [L]

Lösung 3. Die Erzeugung von statischen XML Dateien mit Hilfe eines PHP Skripts

Für diese Lösung erstellt man eben ein kleines Skript:

<?php
$data = file_get_contents("http://WEBSITE.com/index.php?option=com_xmap&view=xml");
file_put_contents("/voller-PATH-zu-dem-web-root-ihrer-website/sitemap.xml", $data);
?>

Dieses Skript kann man auch  als sitemapgenerator.php nennen und als Cron Job auf Ihrem Hosting einrichten. Für die Websites, die selten aktualisiert werden, reicht das tägliche Ausführen. Bitte vergessen Sie hier nicht, den vollen Path zu der Sitemap Datei anzugeben, sonst wird die Datei entweder in Ihrem Cron Job Ordner erzeugt oder schlimmer noch gar nicht.

Probleme mit mehrsprachigen Websites

Bei mehrsprachigen Websites kommt zwingend ein zusätzlicher GET-Parameter ins Spiel - „lang“

http://WEBSITE.com/index.php?option=com_xmap&view=html&id=3&lang=de

Je nachdem, ob SEF URLs ein- oder ausgeschaltet sind, benimmt sich die XMAP Erweiterung unterschiedlich. Komischerweise führt die Einschaltung von SEF URLs dazu, dass die Sprache als Filter verstanden wird. Es werden nur die URLs für die Artikel in der gewählten Sprache gezeigt, egal welche Menüs und in welcher Sprache laut XMAP für ein konkretes Sitemap-ID eingestellt sind.

In dieser Situation hilft die Erstellung von Sitemap-Index mit dem Namen „sitemap.xml“. Sitemap-Index ist die Datei, in der alle die Website betreffenden Sitemaps aufgelistet sind. 

<sitemapindex>
    <sitemap>
        <loc>http://zinitsolutions.com/sitemap-de.xml</loc>
        <lastmod>2012-01-23</lastmod>
    </sitemap>
    <sitemap>
        <loc>http://zinitsolutions.com/sitemap-ru.xml</loc>
        <lastmod>2012-01-23</lastmod>
    </sitemap>
</sitemapindex>

Es wird also für jede Sprache eine eigene Sitemap erstellt und dann werden diese in den Sitemap-Index aufgenommen. Sollte Aufteilung nach den Sprachen funktionieren genauso für die HTML Sitemaps. Für die Erstellung von Sitemaps für jede Sprache kann man jede oben beschriebene Lösung nehmen. Viel Erfolg bei der Erstellung von Websites mit suchmaschinenfreundlichen URLs wünscht Ihnen Zinit Solutions GmbH!

Letzte Änderung am Freitag, 30 März 2012 08:54

Schreibe einen Kommentar

Achten Sie darauf, die erforderlichen Informationen einzugeben (mit Stern * gekennzeichnet).
HTML-Code ist nicht erlaubt.

 

Wünschen Sie weitere Informationen?

Wir beraten Sie gerne kostenlos und ganz unverbindlich

Rufen Sie uns an:+49 (2102) 4414900
 

­Angebot anfordern

Wenn Sie weitere Informationen wünschen, füllen Sie bitte dieses Formular aus. Wir werden Sie umgehend kontaktieren.
* Pflichtfelder

Warum entscheiden sich Kunden für uns?

  • Anfrage und Angebot kosten bei uns nichts
  • Wir wissen Ihre persönlichen Daten zu schätzen
  • Preis-Leistungs-Verhältnis stimmt
  • Unserer Beratung liegen langjährige Erfahrungen zugrunde
  • Transparenter Projektablauf und offene Kommunikation
  • Qualitative Leistungen auf den Basis von modernen Technologien
  • Langfristiges Support