mod_rewrite

Alle ausklappen Alle einklappen

Was ist mod_rewrite?

mod_rewrite ist ein Modul für den Apache-Webserver, das die Definition sogenannter Rewrite-Regeln ermöglicht. Mit Hilfe von Rewrite-Regeln können URLs manipuliert und somit beispielsweise suchmaschinenfreundlicher gestaltet werden.

Wie kann mod_rewrite genutzt werden?

Das Modul mod_rewrite können Sie nutzen, indem Sie eine .htaccess-Datei erstellen. Informationen zum Anlegen einer .htaccess-Datei erhalten Sie auf der Seite ".htaccess" in diesen FAQ.

Um das mod_rewrite-Modul zu aktivieren,  erstellen Sie in einer .htaccess-Datei bitte den folgenden Eintrag:

 

RewriteEngine On

Meine Rewrite-Regel funktioniert nicht. Warum?

Wenn eine Rewrite-Regel nicht funktioniert, kann das viele Ursachen haben. Einige häufige Ursachen haben wir im Folgenden für Sie zusammengestellt.

Die Anweisung "RewriteBase"

Je nach Struktur des Webservers wird in der .htaccess-Datei die Anweisung RewriteBase benötigt, um Rewrite-Regeln nutzen zu können. Es kann deshalb vorkommen, dass eine .htaccess-Datei, die auf einem Webserver problemlos lief, auf einem anderen Webserver nicht mehr funktioniert. Häufig kommt es dabei zu einem "Fehler 404" (Not found). Fügen Sie dann einfach die Zeile

 

RewriteBase /

 

nach der Zeile

 

RewriteEngine On

 

ein.

Liegt die .htaccess-Datei nicht im Stammverzeichnis (Document Root) der Domain muss der Pfad angegeben werden, unter welchem die Datei abgelegt ist:

 

RewriteBase /verzeichnis1/verzeichnis2

 

Wenn Sie die .htaccess-Datei einer Open-Source-Software wie z.B. Joomla oder Drupal  für Suchmaschinenoptimierung (SEO) verwenden, steht die Anweisung RewriteBase oft schon in der .htaccess-Datei, wurde aber durch das Voranstellen des Kommentarzeichens # deaktiviert. Dann genügt es das Kommentarzeichen zu entfernen.

Mehr zu diesem Thema erfahren Sie in der Dokumentation zu RewriteBase auf Apache.org.

php_value und php_flag

Die Anweisungen php_value und php_flag können bei DomainFactory nicht verwendet werden. Ist eine der beiden Anweisungen in der .htaccess-Datei enthalten, erhalten Sie die Fehlermeldung "internal server error". Sie können stattdessen den PHP.INI-Editor nutzen, wenn dieser in Ihrem Paket enthalten ist. In den anderen skriptfähigen Paketen können Sie eine eigene PHP.INI-Datei für diesen Zweck anlegen.

Anweisungen, die nicht in .htaccess-Dateien verwendet werden können

Einige Anweisungen wie RewriteMap und RewriteLog sind nicht für .htaccess-Dateien vorgesehen und können deshalb nicht verwendet werden. Ob eine Anweisung in einer .htaccess-Datei verwendet werden kann, erfahren Sie in der Dokumentation zu mod_rewrite: Nur wenn in der Zeile "Context" für die jeweilige Anweisung auch ".htaccess" steht, kann die Anweisung in einer .htaccess-Datei eingesetzt werden.

Tipps zur Fehlersuche

Bei der Fehlersuche ist es hilfreich, hinter die Anweisung, in welcher man einen Fehler vermutet, das Flag [L] zu schreiben. Dadurch werden die Rewrite-Regeln nach Ausführung dieser Anweisung abgebrochen. So kann die Funktionalität einzelner Anweisungen überprüft werden, ohne dass das Ergebnis durch nachfolgende Anweisungen verändert wird.

Außerdem hilft es, das Flag [R] hinter die Anweisung zu schreiben, in der man einen Fehler vermutet. Dadurch wird eine externe Weiterleitung erzwungen und in der Adresszeile des Browsers wird angezeigt, wohin tatsächlich weitergeleitet wird.

Wo finde ich weitere Informationen?

Weitere Informationen rund um mod_rewrite finden Sie unter den folgenden Links:

DomainFactory Forum
In unserem Forum gibt es einen eigenen Bereich zum Thema .htaccess, in welchem häufig auch mod_rewrite-spezifische Themen behandelt werden:
https://www.df.eu/forum/forums/130-htaccess

Apache-Webseite Referenzdokumentation
Auf der Apache-Webseite finden Sie eine Referenzdokumentation zum "mod_rewrite"-Modul, welche sowohl auf die grundsätzliche Funktionsweise als auch das Erstellen komplexer Rewrite-Rules eingeht:
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

Apache-Wiki Rewrite-Guide
Neben der Referenzdokumentation gibt es auch ein Rewrite-Wiki, das konkrete Lösungsansätze und Beispiele für RewriteRules bietet:
http://wiki.apache.org/httpd/Rewrite

Geben sie uns Ihr Feedback

Das freut uns und wir haben Ihre positive Rückmeldung vermerkt. Wenn Sie möchten, teilen Sie uns gerne noch Details mit: Was hat Ihnen besonders gefallen? Welche Informationen waren besonders hilfreich?

Leider können wir Ihr Feedback nicht direkt beantworten, wir verwenden es jedoch, um die FAQ weiterzuentwickeln und zu verbessern. Wir freuen uns auf Ihre Antwort!

Geben sie uns Ihr Feedback

Es tut uns leid, dass Sie mit den FAQ nicht zufrieden sind. Welche Information vermissen Sie? Was können wir besser machen?

Leider können wir Ihr Feedback nicht direkt beantworten, wir verwenden es jedoch, um die FAQ weiterzuentwickeln und zu verbessern. Wir freuen uns auf Ihre Antwort!