Apache – mod_rewrite – URL Weiterleitung

Es kommt nicht selten vor, das man eine interne URL-Weiterleitung im Apache einrichten möchte. Dafür ist das Modul mod_rewrite zuständig. Unter Debian kann es recht einfach mithilfe eines kleinen Tools aktiviert werden a2enmod rewrite. Alternativ kann das Modul auch von Hand aktiviert werden. Dafür einfach einen Symlink in /etc/apache2/mods-enabled/ erstellen der auf /etc/apache2/mods-available/rewrite.load zeigt. Anschließend den Apache neustarten /etc/init.d/apache2 restart.

Möchte man das rewrite Modul innerhalb von .htaccess Dateien verwenden, so sollte die Verwendung dieser auch erlaubt sein. Dafür muss die Direktive AllowOverride aktiviert sein. Dies geschieht in der entsprechenden Konfigurationsdatei, z.B. /etc/apache2/sites-enabled/000-default.

Eine .htaccess-Datei könnte dann wie folgt aussehen:

RewriteEngine on
# Weiterleitung von http://example.org/ zu http://www.example.org/
RewriteCond %{HTTP_HOST} ^example.org$ [NC]
RewriteRule ^(.*) http://www.example.org/$1 [R=301]

# Alle Seiten die mit directory/ beginnen werden nach / weitergeleitet
RewriteRule ^directory/$ / [R=301]

# / wird nach directory weitergeleitet
RewriteRule ^$ /directory [R=301]
# Fehlende Dokumente führen zu /
ErrorDocument 404 /

Weiterführende Links:

Schreibe einen Kommentar