Marcato · III. Bauen
.htaccess-Referenz: Weiterleitungen, Schutz und Caching
Aktualisiert am 24. September 20262 Min. Lesezeit
Die Datei .htaccess steuert auf Apache-Servern das Verhalten einzelner Verzeichnisse – ohne Zugriff auf die zentrale Serverkonfiguration. Diese Referenz sammelt die Anweisungen, die man im Alltag tatsächlich braucht.
T. 1Vorab: Wann .htaccess überhaupt gilt
Die .htaccess ist eine Eigenheit des Webservers Apache. Nginx, Microsofts IIS und viele moderne Hosting-Plattformen werten sie nicht aus; dort gelten eigene Konfigurationsdateien oder Einstellungen im Verwaltungsbereich. Außerdem muss der Serverbetreiber die Auswertung erlauben (Direktive AllowOverride). Bei den meisten klassischen Webhosting-Paketen ist das der Fall.
Die Datei beginnt mit einem Punkt und ist deshalb auf vielen Systemen versteckt. Im FTP-Programm muss meist die Anzeige versteckter Dateien eingeschaltet werden. Wichtig: Ein einziger Tippfehler kann die ganze Website mit einem Fehler 500 lahmlegen. Vor jeder Änderung also eine Sicherungskopie anlegen.
T. 2Einzelne Seiten weiterleiten
Wenn eine Seite umgezogen ist, sorgt eine dauerhafte Weiterleitung (Statuscode 301) dafür, dass Besucher und Suchmaschinen die neue Adresse finden:
Redirect 301 /alte-seite.html /neue-seite/
Redirect 301 /archiv/2009/ /beitraege/
Redirect arbeitet mit Präfixen: Die zweite Zeile leitet auch /archiv/2009/irgendwas um und hängt den Rest an. Wer das nicht möchte, nutzt RedirectMatch mit einem regulären Ausdruck.
T. 3https und eine Hostvariante erzwingen
Mit dem Modul mod_rewrite lassen sich Anfragen nach Bedingungen umschreiben. Das folgende Beispiel leitet alles auf https und auf die Adresse ohne www:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.de%{REQUEST_URI} [L,R=301]
Damit verschwinden auch die Dubletten, die entstehen, wenn dieselbe Seite unter mehreren Hostnamen erreichbar ist – mehr dazu im Beitrag Duplicate Content vermeiden.
T. 4Eigene Fehlerseiten
ErrorDocument 404 /404.html
ErrorDocument 500 /fehler.html
Eine gute 404-Seite erklärt kurz, dass die Adresse nicht existiert, und bietet Wege weiter: Startseite, Suche, die wichtigsten Rubriken.
T. 5Verzeichnisse schützen
Ein einfacher Passwortschutz nutzt die HTTP-Basic-Authentifizierung. Die Passwortdatei .htpasswd sollte außerhalb des öffentlichen Verzeichnisses liegen:
AuthType Basic
AuthName "Interner Bereich"
AuthUserFile /pfad/ausserhalb/.htpasswd
Require valid-user
Die Verzeichnisauflistung – also die automatische Dateiliste, wenn keine index-Datei vorhanden ist – schaltet diese Zeile ab:
Options -Indexes
T. 6Caching und Kompression
Bilder, Schriften und Stylesheets ändern sich selten. Mit mod_expires lässt sich dem Browser sagen, wie lange er sie zwischenspeichern darf:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
</IfModule>
Die Kompression von Textdateien übernimmt mod_deflate. Viele Hoster haben beides bereits zentral eingerichtet; ein Blick in die Antwortköpfe im Entwicklerwerkzeug des Browsers zeigt, ob es greift.
T. 7Weiterlesen
Die offizielle Anleitung der Apache Software Foundation zur .htaccess erklärt auch, warum zentrale Konfiguration schneller ist, wenn man Zugriff darauf hat. Wie man die Seitenstruktur plant, die man hier umleitet, zeigt der Beitrag Menüs für Websites.