Archive für August 2009

Modul “mod_rewrite” mit PHP 5 und Debian Etch

Modul “mod_rewrite” mit PHP 5 und Debian Etch

Um Suchmaschinenoptimierung zu betreiben, ist es sinnvoll dem Suchmaschinenbot statisches HTML vorzugaukeln. Dazu wird eine .htaccess Datei angelegt und in das Webverzeichnis gelegt, in dem die scheinbar statischen Seiten dynamischen Inhalt anzeigen sollen.

Wer dieses Verfahren in seinem PHP-Projekt anwenden möchte, kommt um das Modul „mod_rewrite“ nicht herum.

Der Apache2 Webserver bietet das Modul „mod_rewrite“ an. Dieses Modul wird standardmäßig mit dem Apache2 ausgeliefert, ist aber nicht aktiviert.

In diversen Foren trifft man häufig auf die falschen Aussage, das man das Modul mit

apt-get install mod_rewrite

installieren soll. Wenn Sie auf solche Aussagen stoßen brauchen Sie nicht mehr weiterlesen, das wäre reine Zeitverschwendung.

Richtig ist, das Sie das Modul mit

a2enmod rewrite

aktivieren können. Nach dem Neustart des Apache-Webservers mit

/etc/init.d/apache2 restart

steht das Modul zur Verfügung.

Um jetzt beginnen zu können, stellen Sie bitte sicher das Sie mit Ihrer .htaccess Datei auch die Direktive „FileInfo“ überschreiben dürfen.

In Debian Etch können Sie das wie folgt überprüfen:

vi /etc/apache2/sites-available/default

wobei „default“ das Standardweb ist. Sollten Sie andere Webanwendungen konfiguriert haben, ersetzen Sie „default“ mit „NameIhrerWebanwendung“.

Finden Sie den Container des Rootverzeichnisses Ihrer Webanwendung. In der Standardinstallation also folgenden Bereich:

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride none
Order allow,deny
allow from all
# This directive allows us to have apache2’s default start page
# in /apache2-default/, but still have / go to the right place
RedirectMatch ^/$ /apache2-default/
</Directory>

Setzen Sie den Parameter

AllowOverride none

auf

AllowOverride FileInfo
Starten Sie den Apache2 neu

/etc/init.d/apache2 restart

Sie sollten jetzt in der Lage sein, mit einer einfachen .htaccess Datei die Funktion von „mod_rewrite“ zu testen.

Legen Sie im Root Ihrer Webanwendung eine .htaccess Datei mit folgendem Inhalt an:

#Filename: .htaccess
#Purpose: Test
RewriteEngine On
RewriteRule ^ http://www.heise.de [R,L]

Wir erwarten jetzt folgendes Verhalten: Jeder beliebige Aufruf von Webseiten, auch wenn diese gar nicht auf Ihrem Webspace liegen, wird auf www.heise.de umgeleitet. Wenn das der Fall ist, kann mit der eigentlichen Parametrisierung angefangen werden.

Beispiele zur Konfiguration von .htaccess Dateien mit „mod_rewrite“ Parametern gibt es im Netz wie Sand am Meer.

Zum Beispiel:

http://www.modrewrite.de/mod_rewrite.examples.beispiele.phtml

http://www.sitepoint.com/article/apache-mod_rewrite-examples/2/

Sollten Sie Fragen haben oder Verbesserungen an diesem Dokument wünschen, zögern Sie nicht mich zu kontaktieren.

ralfreinartz_webde.GIF

PDF: Starting with mod_rewrite and Linux Debian Etch

|