/ www.portalsuite.de / Support / Portunity Portalsuite / Handbuch / 8 Suchmaschinen-Optimierung


Aktivierung der Rewriting-Rules für die Portalsuite

Nachdem die Templates die Meta-Informationen für die Suchmaschinen mitgenerieren und auch die Artikel und Kategorien für die Suchmaschinen präpariert wurden, fehlt noch eine letzte Kleinigkeit, um die Webseite in den Suchmaschinen einzutragen: Die Aktivierung der „Rewriting Rules“ für die Portalsuite

Viele Suchmaschinen indizieren nur HTML-Dateien, die auch die Dateiendung „.html“ oder „.htm“ haben. Dies ist in der Regel auch sinnvoll, denn durch CGI-Scripte dynamisch generierte Seiten enthalten oft auch dynamische, kurzweilige Informationen.
Das Ziel eines Content-Management-Systemes ist es jedoch, die komplette Seite mit hunderten oder tausenden von Seiten dynamisch aus Datenbanken zu generieren. Die Portalsuite basiert intern auf der Sprache PHP und dies sieht man sowohl der Software als auch den späteren Webseiten an. In dem URL-Eingabefeld des Browsers sieht man deutlich die Dateiendung „.php“ und diese verhindert bei einigen Suchmaschinen die Indizierung aller Webseiten trotz hinterlegter Metainformationen.
Glücklicherweise gibt es dazu aber eine Lösung. Es ist dazu allerdings nötig, den Webserver dazu zu bringen, eine Anforderung nach einer HTML-Seite nicht mit einer „404 Error, Page not found“ Fehlermeldung zu beantworten, sondern vorher die URL-Anforderung „umzubauen“ in die PHP-Variante. Dadurch kann der Nutzer, und damit auch die Suchmaschinen, eine Seite mit der Dateiendung „.html“ anfordern und erhalten trotzdem eine sinnvolle Seite. Hierzu muß die Portalsuite jedoch sehr eng mit dem Webserver zusammenarbeiten und auch nicht jeder Webserver beherrscht die dynamische Umsetzung von URL’s „on the fly“.

Im folgenden beziehen wir uns als Beispiel auf die am meisten eingesetzten Webserversoftware „Apache“, die es für viele Betriebssysteme wie Windows, Unix und Linux gibt. Ein weiteres Problem besteht gegebenfalls darin, daß Sie keinen eigenen Webserver haben bzw. betreiben sondern bei einem Provider hosten und folglich mangels Berechtigungen nicht an die Konfigurationsdateien kommen. In diesem Fall bleibt Ihnen lediglich die Wahl, entweder mit Ihrem Hoster Kontakt aufzunehmen oder sich einen neuen Hoster zu suchen und dort einen eigenen Webserver anzumieten (die Sie heute bereits für unter 100 Euro im Monat erhalten!).

Der Apache-Webserver beherrscht das Umbauen von URL’s durch die sogenannten Rewriting Rules. Bei den Rewriting Rules handelt es sich um einen Satz von Regeln und Filtermöglichkeiten, mit denen URL’s gefiltert und umgebaut werden können. Wir möchten an dieser Stelle ein passendes Zitat zu den Rewriting Rules bringen:"The great thing about mod_rewrite is it gives you all the configurability and flexibility of Sendmail. The downside to mod_rewrite is that it gives you all the configurability and flexibility of Sendmail."-- Brian Behlendorf Apache Group.
Die Rewriting Rules sind sehr kompliziert, aber auch sehr flexibel. Wir haben die nötigen Rewriting Rules aber bereits für Sie aufgestellt. Sie müssen lediglich dafür sorgen, daß das Rewriting-Rule-Modul im Apacheserver aktiviert ist und folgende Regeln in die Apache-Konfigurationsdatei bzw. dem Abschnitt Ihres virtuellen Servers einfügen. Bitte beachten Sie, daß jede Anweisung in eine Zeile geschrieben werden muß, auch die bei denen es hier aufgrund der Länge zu Umbrüchen kam:

RewriteEngine On
RewriteRule ^/index\.html$ /index.php?fUseCache=1
RewriteRule ^/article([^-]*)-([^-]*)_(.*)\.html$ /show-article.php?iArticleID=$1&iRubrikID=$2&iTemplateID=$3&fUseCache=1
RewriteRule ^/article([^-]*)-(.*)\.html$ /show-article.php?iArticleID=$1&iRubrikID=$2&fUseCache=1
RewriteRule ^/article([^-]*)_(.*)\.html$ /show-article.php?iArticleID=$1&iTemplateID=$2&fUseCache=1
RewriteRule ^/article(.*)\.html$ /show-article.php?iArticleID=$1&fUseCache=1
RewriteRule ^/cat([^-]*)_(.*)\.html$ /index.php?iRubrikID=$1&iTemplateID=$2&fUseCache=1
RewriteRule ^/cat(.*)\.html$ /index.php?iRubrikID=$1&fUseCache=1
RewriteRule ^/index([^-]*)_(.*)\.html$ /index.php?iIndexID=$1&iTemplateID=$2&fUseCache=1
RewriteRule ^/index(.*)\.html$ /index.php?iIndexID=$1&fUseCache=1
RewriteRule ^/media-pre([^-]*)\.(.*)$ /media-get.php?n=$1&Mode=pre
RewriteRule ^/media-nor([^-]*)\.(.*)$ /media-get.php?n=$1&Mode=nor

(Stand: 09.01.2003 für PS2002 V3.0.3PL1, für Apache Version 1.x)
Achten Sie bitte auf die korrekten Zeilenumbrüche. Jede Zeile beginnt mit "Rewrite....".


Wir werden an dieser Stelle jetzt nicht auf die Bedeutung und Syntax dieser Regeln und Befehle eingehen, da dies an dieser Stelle zu weit führen würde. Bei Interesse empfehlen wir einen Blick in die sehr ausführliche Dokumentation des Apache-Webservers im Internet unter apache.org.

Nach der Aktivierung der Rewriting-Rules im Apacheserver stehen die Seiten bereits als virtuelle HTML-Dateien zur Verfügung. Wenn Sie jedoch einen Artikel oder Menüpunkt anklicken, wird wieder auf die eigentliche PHP-Version verlinkt. Dieses Verhalten wirkt sich negativ auf das Indizierverhalten der Suchmaschinen aus, da die meisten Suchmaschinen automatisch auch die Unterseiten anhand der internen Links besuchen und indizieren. Wenn aber auf PHP-Dateien verlinkt wird, nehmen die Suchmaschinen diese wieder nicht an. Aus diesem Grund gibt es im Basis-Setup in den Siteparametern ein Rewriting-Rule-Flag, mit dem Sie erreichen können, das alle internen Links auf die HTML-Variante gesetzt werden. Wenn Sie das Rewriting-Rule Flag gesetzt haben, sollte beim Klick auf einen Artikel oder Menüpunkt auf die HTML-Variante verlinkt werden. Wenn die Rewriting Rules auf dem Server jedoch nicht aktiviert sind oder nicht korrekt arbeiten, kommt es natürlich zu einer entsprechenden Fehlermeldung, daß die Seite nicht existiert.

Daraus folgert, daß Sie zwar die Rewriting Rules auf dem Webserver aktivieren können, und es egal ist, ob auch das Flag im Basissetup aktiviert haben, aber umgekehrt, die Website nicht mehr funktionieren wird.

 

Hier noch ein Beispiel eines echten httpd.conf Eintrages des Apache Webservers:

<VirtualHost 192.168.100.10>
     Servername portunity.de
     ServerAlias www.portunity.de
     DocumentRoot /webservice/_portunity/portunity.de
     RewriteEngine On
     RewriteRule ^/index\.html$ /index.php?fUseCache=1
     RewriteRule ^/article([^-]*)-([^-]*)_(.*)\.html$ /show-article.php?iArticleID=$1&iRubrikID=$2&iTemplateID=$3&fUseCache=1
     RewriteRule ^/article([^-]*)-(.*)\.html$ /show-article.php?iArticleID=$1&iRubrikID=$2&fUseCache=1
     RewriteRule ^/article([^-]*)_(.*)\.html$ /show-article.php?iArticleID=$1&iTemplateID=$2&fUseCache=1
     RewriteRule ^/article(.*)\.html$ /show-article.php?iArticleID=$1&fUseCache=1
     RewriteRule ^/cat([^-]*)_(.*)\.html$ /index.php?iRubrikID=$1&iTemplateID=$2&fUseCache=1
     RewriteRule ^/cat(.*)\.html$ /index.php?iRubrikID=$1&fUseCache=1
     RewriteRule ^/index([^-]*)_(.*)\.html$ /index.php?iIndexID=$1&iTemplateID=$2&fUseCache=1
     RewriteRule ^/index(.*)\.html$ /index.php?iIndexID=$1&fUseCache=1
     RewriteRule ^/media-pre([^-]*)\.(.*)$ /media-get.php?n=$1&Mode=pre
     RewriteRule ^/media-nor([^-]*)\.(.*)$ /media-get.php?n=$1&Mode=nor
</VirtualHost>

 

Bei einigen Webserverinstallationen (z.B. SuSE 9.0) funktinieren die oben aufgezeigen Rewritig-Rules leider nicht. Hier muss jede Zeile am Ende mit " [T=application/x-httpd-php,L]" ergänzt werden.

Also zum Beispiel:
RewriteRule ^/article([^-]*)-(.*)\.html$ /show-article.php?iArticleID=$1&iRubrikID=$2&fUseCache=1 [T=application/x-httpd-php,L]

 



[zurück] - [bookmarken] - [Druckversion] - [Weiterempfehlen] - [Kontakt] - [Impressum]





Providing unter: http://portunity.net

DSL, ENUM, Hosting, Server,...



unter: enum-center.de