Die .htaccess ist eine Konfigurationsdatei des Apache HTTP Servers, mit der sich Einstellungen für ein einzelnes Verzeichnis ändern lassen, ohne die Hauptkonfiguration des Servers anzufassen. Ihre Regeln gelten für das Verzeichnis, in dem sie liegt, und für alle Unterverzeichnisse.
Wie funktioniert die .htaccess?
Ob Apache die Datei überhaupt beachtet, entscheidet die Direktive AllowOverride. Ihr Standardwert ist None, dann wird die Datei ignoriert. Freigegeben werden Kategorien, etwa FileInfo für Weiterleitungen und AuthConfig für Passwortschutz. Liegen mehrere Dateien in verschachtelten Verzeichnissen, überschreibt die tiefer liegende die höhere.
Apache rät selbst zur Hauptkonfiguration, wenn Zugriff darauf besteht. Mit aktivierter .htaccess sucht der Server bei jeder Anfrage in allen Verzeichnissen auf dem Pfad nach der Datei und liest sie jedes Mal neu ein.
Für SEO ist die Datei vor allem aus drei Gründen relevant. Über das Modul mod_rewrite setzt sie Weiterleitungen und URL-Umschreibungen um. Sie kann HTTP-Header setzen, zum Beispiel X-Robots-Tag für PDFs, wie es Google an einem Apache-Beispiel zeigt. Und sie liefert Fehlerseiten und Zugriffsschutz für Verzeichnisse.
Beispiel
Eine 301-Weiterleitung von einer alten auf eine neue URL:
RewriteEngine On
RewriteRule ^alte-seite/?$ /neue-seite/ [R=301,L]
R=301 löst die Weiterleitung mit Status 301 aus, L beendet die Verarbeitung weiterer Regeln. In der .htaccess braucht mod_rewrite zusätzlich Options FollowSymLinks oder SymLinksIfOwnerMatch und AllowOverride FileInfo.
X-Robots-Tag für alle PDF-Dateien:
<Files ~ "\.pdf$">
Header set X-Robots-Tag "noindex, nofollow"
</Files>
Häufige Fehler
- Syntaxfehler. Apache reagiert laut Berichten sehr empfindlich auf Syntax, schon kleine Fehler können einen Serverfehler 500 auslösen.
- Regeln stehen in der falschen Reihenfolge.
mod_rewritearbeitet Regeln der Reihe nach ab, ohneLlaufen weitere Regeln durch. - Datei im falschen Verzeichnis. Regeln wirken nur ab dem Ordner, in dem die Datei liegt.
- Kein Backup vor der Änderung. Eine fehlerhafte Datei kann Serverfehler auslösen, und eine Sicherung erlaubt den schnellen Rückweg.
Häufige Fragen
Wo muss die .htaccess liegen? In dem Verzeichnis, für das die Regeln gelten. Für die ganze Website liegt sie im obersten Verzeichnis der Website.
Funktioniert die .htaccess auf jedem Server?
Sie ist ein Mechanismus von Apache. Ob sie auf einem Hosting-Paket wirkt, hängt von AllowOverride und den Einstellungen des Anbieters ab.
Quellen
- Apache HTTP Server Tutorial: .htaccess-Dateien – Apache HTTP Server Projecthttpd.apache.org
- mod_rewrite – Apache HTTP Serverhttpd.apache.org
- Robots-Meta-Tag und X-Robots-Tag – Google Search Centraldevelopers.google.com
- htaccess – SELFHTMLwiki.selfhtml.org
Stand: