Hinweise zur Erstellung von Rewrite Rules
Bitte verwenden sie die "Drucken" Funktion am Seitenende, um ein PDF zu erstellen.
Für Linux Webhosting und Managed Dedicated Server
Sie erfahren, worauf Sie bei der Erstellung und Verwendung von Rewrite-Regeln im IONOS Webhosting achten müssen, um Fehler zu vermeiden und die Funktionsfähigkeit Ihrer Website zu gewährleisten.
Achtung
Rewrite Rules können sehr komplex sein und bei der kleinsten Änderung einen Fehler 500 (Serverfehler) auslösen. Ihre Website kann dann nicht mehr angezeigt werden.
Der Fehler 500 kann bereits durch die falsche Eingabe eines einzigen Zeichens verursacht werden. In diesem Fall handelt es sich nicht um einen Serverfehler im eigentlichen Sinne. In der Regel funktioniert die Website wieder einwandfrei, wenn die entsprechenden Zeilen in der .htaccess auskommentiert oder gelöscht werden. Um eine Zeile auszukommentieren, fügen Sie am Anfang der Zeile ein # ein.
mod_rewrite und Aktivierung der RewriteEngine
Auf den Webhosting-Servern ist das Apache-Modul mod_rewrite bereits standardmäßig aktiv. Damit Ihre Rewrite-Regeln wirksam werden, schalten Sie die so genannte RewriteEngine ein. Geben Sie dazu den folgenden Befehl am Anfang Ihrer .htaccess ein:
RewriteEngine On
Parameter RewriteBase und Angabe von Verzeichnissen
Nachdem Sie die RewriteEngine aktiviert haben, müssen Sie auch die sogenannte RewriteBase am Anfang der .htaccess angeben:
RewriteBase /
Mit der RewriteBase legen Sie fest, ab welchem Verzeichnis die RewriteRule wirksam werden soll. Wenn die RewriteBase wie oben mit / angegeben wird, ist der Ausgabepfad das Verzeichnis, mit dem die umzuleitende Domain verknüpft ist. Um zu sehen, welchem Verzeichnis eine Domain derzeit zugewiesen ist, klicken Sie auf die betreffende Domain in Ihrer Domainverwaltung. Auf der Detailseite Ihrer Domain wird Ihnen dann der Pfad zum Webspace angezeigt.
RewriteBase und RewriteRule in selbem Verzeichnis
Soll die erstellte RewriteRule im selben Verzeichnis greifen, zu dem auch die RewriteBase definiert wurde, geben Sie bei Ihrer RewriteRule keine weiteren Verzeichnispfade an. Es reicht die Angabe der Datei mit voran gestelltem /.
RewriteEngine On
RewriteBase /
RewriteRule ^([a-z]+)\.html$ /index.php?$1 [R,L]
RewriteBase und RewriteRule in verschiedenen Verzeichnissen
Wenn eine RewriteRule in einem anderen Verzeichnis als dem von der RewriteBase angegebenen wirksam werden soll, muss dies mit der entsprechenden Angabe des Verzeichnispfads definiert werden.
Ein Beispiel:
Die folgende RewriteRule legt fest, dass jeder URL-Aufruf zu einer nicht existierenden HTML-Seite automatisch die Datei index.html aus dem Verzeichnis /test laden soll.
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.html$ test/index.html
Wenn die Domain bereits über das IONOS Konto mit dem Verzeichnis /test verbunden worden wäre, wäre die Angabe des Verzeichnisses /test in der RewriteRule nicht mehr notwendig, da dies bereits über die Angabe in der RewriteBase definiert ist.
Tipps zur Fehlervermeidung
Hier führen wir die häufigsten Fehlerursachen auf, die dazu führen können, dass eine Rewrite-Regel nicht wirksam wird, auch wenn sie keinen Fehler 500 auslöst.
Stellen Sie sicher, dass der Name Ihrer .htaccess-Datei richtig geschrieben ist und mit einem Punkt beginnt. Wenn Sie Microsoft Windows als Betriebssystem verwenden und Probleme mit dem Punkt im Namen auftreten, erstellen Sie die .htaccess-Datei wie in folgenden Artikel beschrieben: Dateien mit vorangestelltem Punkt unter Windows erstellen
Vergewissern Sie sich, dass sich die .htaccess im richtigen Verzeichnis befindet. Beachten Sie, dass eine .htaccess rekursiv wirkt. Das bedeutet, dass sie sich auf das Verzeichnis, in dem sie gespeichert wurde, und die entsprechenden Unterverzeichnisse auswirkt.
Vermeiden Sie nach Möglichkeit mehrere, verschachtelte .htaccess-Dateien auf einer Pfadebene. Fehler in einer .htaccess eines Unterverzeichnisses können sich unter Umständen auch negativ auf übergeordnete Rewrite-Regeln auf oberen Verzeichnisebenen auswirken.
Wir empfehlen Ihnen, für jede Domain oder Webpräsenz ein eigenes Verzeichnis anzulegen. Auf diese Weise können Sie problemlos separate .htaccess-Dateien und Rewrite-Regeln für jede Domain definieren, die sich nicht gegenseitig behindern.
Haben Sie im gleichen Verzeichnis über Ihr IONOS Konto ein geschütztes Verzeichnis erstellt? Diese Funktion überschreibt selbst erstellte .htaccess-Dateien und macht damit Ihre Rewrite-Regeln unwirksam. Unsere Empfehlung: Erstellen Sie den Verzeichnisschutz selbst in Ihrer .htaccess mit Hilfe des Hilfeartikels Verzeichnisschutz mittels .htaccess und FTP einrichten.
Prüfen Sie, ob Funktionen auskommentiert (deaktiviert) sind. Einige vorgefertigte Skripte und Content Management Systeme (CMS), wie z.B. Joomla, kommentieren die Rewrite-Regeln zunächst aus, um Probleme bei der Installation zu vermeiden. In einer .htaccess werden Befehle auskommentiert, indem einer Zeile eine Raute (#) vorangestellt wird:
# Beispiel für Rewrite-Rule:
# (macht aus http://domain.de/xyz.html ein http://domain.de/index.php?xyz
#
RewriteEngine on
RewriteBase /
# RewriteRule ^([a-z]+)\.html$ /index.php?$1 [R,L]
Im obigen Beispiel wurde die eigentliche RewriteRule auskommentiert und ist daher nicht wirksam. Entfernen Sie die Raute vor RewriteRule und speichern Sie die geänderte .htaccess auf dem Server.
- Prüfen Sie, ob der .htaccess die erforderlichen Dateiberechtigungen zugewiesen wurden (chmod). Im Webspace Explorer können Sie die Dateiberechtigungen anpassen, indem Sie mit der rechten Maustaste auf die .htaccess klicken und den Punkt Rechte ändern auswählen. Geben Sie unter dem Punkt Oktalschreibweise den Wert 644 ein. Dies ist für die Funktionen einer .htaccess ausreichend.
- Prüfen Sie die Befehle sorgfältig auf Rechtschreibfehler und stellen Sie sicher, dass nichts fehlt.