Zehn .htaccess-Tricks, die jeder kennen sollte

Webmaster können auf NCSA-kompatiblen Webservern wie dem Apache HTTP Server mithilfe der Konfigurationsdatei .htaccess (dt. „Hypertext-Zugriff“) verzeichnisbezogene Regeln aufstellen. So kann beispielsweise festgelegt werden, welche Benutzer auf bestimmte Dateien zugreifen dürfen. Auch das Einrichten automatischer Weiterleitungen ist ein typisches Beispiel für die Möglichkeiten der .htaccess-Hacks.

Was ist eine .htaccess-Datei eigentlich genau?

Bei der .htaccess handelt es sich um eine textbasierte Datei, durch deren Verwendung berechtigte Nutzer verzeichnisspezifisch die Konfiguration eines NCSA-kompatiblen Webservers beeinflussen können. Der bekannteste Webserver des „National Center for Supercomputing Applications“ (NCSA) ist der weit verbreitete Apache HTTP Server. Seine Arbeitsweise wird durch eine oder mehrere zentrale Datei(en) gesteuert, die man „httpd.conf“ nennt. Diese übergeordneten Konfigurationsdateien sind in der Regel innerhalb des Programmverzeichnisses des Webservers selbst gespeichert und werden vom Server-Administrator definiert. In dieser Datei legt er unter anderem fest, ob ein Benutzer die Berechtigung erhält, die Server-Konfiguration mithilfe von .htaccess-Tricks zu verändern. Ist er berechtigt, kann ein User .htaccess-Dateien für jedes gewünschte Verzeichnis anlegen und bearbeiten.

Bei jedem Seitenzugriff scannt der Webserver rekursiv sämtliche Verzeichnisse ohne die Informationen zwischenzuspeichern. Servereinstellungen, die mit einer .htaccess-Datei vorgenommen werden, sind daher ab dem Moment gültig, in dem die .htacces im jeweiligen Verzeichnis abgelegt wird – ganz ohne Serverneustart. Die Schreibweise sollte zu 100 Prozent korrekt sein, denn eine falschgeschriebene .htaccess verhindert unter Umständen den Seitenzugriff auf dem kompletten Server. Werden die .htaccess-Tricks sachgemäß angewandt, erhält man jedoch einige hilfreiche und nützliche Features zur Verwaltung des Webservers. Da sie schnell umgesetzt und einfach in die bestehende Systemstruktur eingebettet werden können, wird oft auch die Bezeichnung .htaccess-Hacks verwendet.

Eine .htaccess-Datei erstellen – so funktioniert’s

Da .htaccess-Dateien reine Textdateien sind, können sie mit jedem Texteditor erstellt und bearbeitet werden. Je nach verfügbarem Zugang zum Webserver unterscheidet sich das Vorgehen bei der Erstellung. Mit Telnet- oder SSH-Zugang können .htaccess-Dateien direkt auf dem Server erstellt und bearbeitet werden. Steht nur ein FTP-Zugang zur Verfügung, muss die Datei lokal erstellt und anschließend hochgeladen werden. Dass der Name mit einem Punkt beginnt, ist üblich bei Unix Systemen, bei denen verzeichnisspezifische Konfigurationsdateien stets mit einem Punkt beginnen. Das kennzeichnet sie als „versteckt“, was bei der Verwendung eines grafischen FTP-Clients jedoch dazu führen kann, dass die hochgeladene .htaccess-Datei verschwunden zu sein scheint.

Der vorangestellte Punkt sorgt auch bei der lokalen .htaccess-Erstellung auf Windows-Systemen für ein Problem, das sich allerdings schnell lösen lässt. Da Windows den Punkt anders interpretiert als Linux, dürfen Dateinamen, die mit einem Punkt beginnen, nicht unmittelbar vergeben werden. Damit der Editor also nicht das typische .txt anhängt, sollte beim Speichern unter Dateityp „Alle Dateien“ ausgewählt werden. Ist die .htaccess-Datei mit dem gewünschten Befehl bestückt, muss sie nur noch in das Zielverzeichnis befördert werden. Sie ist dann sofort gültig – auch für sämtliche Unterverzeichnisse. 

Server konfigurieren mit .htaccess-Hacks

Vom Server-Administrator autorisierte Benutzer haben durch .htaccess-Dateien die Möglichkeit, schnell und unkompliziert Einfluss auf die Konfiguration des Webservers zu nehmen. So können sie beispielsweise ganze Verzeichnisse durch HTTP-Authentifizierung vor unberechtigten Zugriffen schützen. Außerdem lassen sich eigene Fehlerseiten oder Weiterleitungen einrichten. Es gibt eine Vielzahl unterschiedlicher .htaccess-Tipps und -Tricks. Die zehn nützlichsten werden in den folgenden Abschnitten kurz erläutert:  

SSL-Zertifikate von IONOS!

Wahren Sie dank SSL-Zertifikaten die Geheimhaltung Ihres Online-Verkehrs und stärken Sie das Vertrauen Ihrer Kunden in die Sicherheit Ihrer Webseite.

Geprüfte Sicherheit
Bis zu 256-bit Verschlüsselung
Einfache Aktivierung

1. Alternative Fehlerseiten

Webserver zeigen per Voreinstellung eine standardmäßige HTML-Datei bzw. hart kodierte Meldung an, wenn es beim Zugriff auf die Website zu einem Fehler kommt. Diese Fehlermeldungen sind oft nicht sehr hübsch und einfallsreich – also alles andere als besucherfreundlich. Mithilfe von .htaccess ist es möglich, eigene Ausweich-Seiten oder -Meldungen einzuspeisen, die bei einem Webshop z.B. auf einen vergleichbaren Artikel verweisen. Für das Einbinden eigener Fehlerseiten sind folgende Angaben in der .htaccess notwendig:

# Eigene Fehlermeldungen lokaler Speicherort
ErrorDocument 404 /verzeichnispfad/404.html

Liegt die Fehlerseite oberhalb des Root-Verzeichnisses der Website oder auf einer externen URL, kann auch die komplette URL in die .htaccess, die sich in diesem Fall im Root-Verzeichnis befinden muss, eingegeben werden: Liegt die Fehlerseite oberhalb des Root-Verzeichnisses der Website oder auf einer externen URL, kann auch die komplette URL in die .htaccess, die sich in diesem Fall im Root-Verzeichnis befinden muss, eingegeben werden:  

# Eigene Fehlermeldungen externer Speicherort
ErrorDocument 404 www.domain.tld/verzeichnispfad/404.html

2. Weiterleitungen

Ein großes Einsatzfeld von .htaccess-Dateien bilden Weiterleitungen bzw. Redirects. Es lassen sich beispielsweise einzelne Dateien innerhalb einer Website umleiten oder auch Anfragen auf eine andere Domain weiterleiten. Das ist vor allem praktisch, wenn die Website umzieht. Im Root-Verzeichnis gespeichert, sorgt folgender Code dafür, dass Anfragen an die ursprüngliche Domain vom Server zur neuen Domain umgeleitet werden:

# Einfache Weiterleitung
Redirect / http://www.neue-domain.tld/

Einzelne Dateien lassen sich mit derselben Methode innerhalb einer Website umleiten, falls sich zum Beispiel der Seitenname geändert hat:

# Weiterleitung einzelner Dateien
Redirect /alte-seite.html neue-seite.html

3. Passwortgeschützte Bereiche

Wer keine umfangreichen Login-Scripte mit PHP schreiben möchte, aber dennoch ein geschütztes Verzeichnis oder geschützte Dateien auf seinem Webserver benötigt, kann stattdessen .htaccess-Tricks zur Einrichtung geschützter Bereiche verwenden. Zunächst wird für diese Art des Passwortschutzes eine zweite Datei mit dem Namen .htpasswd benötigt, in welcher die jeweiligen Passwörter gespeichert werden. Diese dürfen in Unix-Systemen nur verschlüsselt eingetragen werden – zu diesem Zweck gibt es im Web verschiedene .htpasswd Generatoren. Geschützte Verzeichnisse können folgendermaßen angelegt werden:

# Einfacher Passwortschutz mit .htaccess
AuthType Basic
AuthName "Passwortgeschützter Bereich"
AuthUserFile /<absoluter Pfad zur Passwortdatei>/.htpasswd
AuthPGAuthoritative Off
require user User1 User2 User3

Zusätzlich wird die .htpasswd mit den Usern inklusive ihrer verschlüsselten Passwörter erstellt: Zusätzlich wird die .htpasswd mit den Usern inklusive ihrer verschlüsselten Passwörter erstellt:

# .htpasswd-Datei für Benutzernamen und Passwörter
User1:duCmo1zxkKx6Y
User2:mou3IYjSLpGWI
User3:HGKS9XzDXXAXQ

Während die .htpasswd-Datei anschließend idealerweise oberhalb des Rootverzeichnisses abgelegt wird, muss sich die .htaccess in dem Verzeichnis befinden, das geschützt werden soll. Während die .htpasswd-Datei anschließend idealerweise oberhalb des Rootverzeichnisses abgelegt wird, muss sich die .htaccess in dem Verzeichnis befinden, das geschützt werden soll.

4. PHP Memory Limit erhöhen

Die Nutzung von PHP-Anwendungen unterliegt einem bestimmten Memory Limit. Das Limit bestimmt den maximalen Arbeitsspeicherverbrauch, den alle verwendeten PHP-Scripts auf dem Server gemeinsam verursachen dürfen. Mit dem folgenden Befehl in der .htaccess lässt sich das Limit bei Bedarf erhöhen:

# PHP Memory Limit
php_value memory_limit 128M

Der Wert 128M steht in diesem Fall für ein Limit von 128 Megabyte. Je nach Speicherbedarf und Servervoraussetzung können auch andere Limits gesetzt werden. Der Wert 128M steht in diesem Fall für ein Limit von 128 Megabyte. Je nach Speicherbedarf und Servervoraussetzung können auch andere Limits gesetzt werden. 

5. Die Zeitzone des Webservers ändern

Läuft der Webserver in der falschen Zeitzone, kann das mit folgendem Eintrag in der .htaccess angepasst werden:

# Zeitzone setzen
SetEnv TZ Europe/Berlin

6. IP-Adressen blockieren

Es ist möglich, bestimmten IP-Adressen oder -Bereichen den Zugriff auf Websites zu verwehren. Mit dem richtigen Eintrag in der .htaccess können sogar alle IP-Adressen ausgeschlossen und nur ganz bestimmten der Zugriff gewährt werden. So kann das Web-Angebot beispielsweise nur den Mitarbeitern im firmeneigenen Intranet zur Verfügung gestellt werden. Der folgende Befehl fasst einige der möglichen Zugriffsbeschränkungen zusammen:

# Datei zum Regeln von IP-Bereichen
Order deny,allow
Deny from .aol.com
Deny from 192.168
Allow from 192.168.220.102

Mit dem Eintrag „Order“ wird die Interpretationsreihenfolge der eingetragenen Angaben festgelegt – die Reihenfolge ist dabei egal. Die weiteren Einträge kommunizieren dem Webserver, dass alle Benutzer mit .aol.com-Kennung sowie alle mit der numerischen IP-Adresse des Bereichs 192.168 von der Benutzung der Website ausgeschlossen sind. Eine Ausnahme bildet dabei der User mit der IP 192.168.220.102. Mit dem Eintrag „Order“ wird die Interpretationsreihenfolge der eingetragenen Angaben festgelegt – die Reihenfolge ist dabei egal. Die weiteren Einträge kommunizieren dem Webserver, dass alle Benutzer mit .aol.com-Kennung sowie alle mit der numerischen IP-Adresse des Bereichs 192.168 von der Benutzung der Website ausgeschlossen sind. Eine Ausnahme bildet dabei der User mit der IP 192.168.220.102.  

7. Umleitung der Webpräsenz von HTTP auf HTTPS

Wer für seine Domain ein SSL-Zertifikat nutzt, hat die Möglichkeit, die Domain per .htaccess-Befehl auf den verschlüsselten HTTPS-Aufruf umzuleiten:

# Aktiviere HTTPS
RewriteEngine On
RewriteCond %{Server_Port} !=443
RewriteRule ^(.*)$ https://ihredomain.tld/$1 [R=301,L]

8. Datei-Zugriff über den Browser aktivieren

Mit folgendem Befehl kann der Verzeichnisinhalt im Browser angezeigt und anderen Benutzern zum Download angeboten werden:

# Zeige Verzeichnisinhalt an
Options +Indexes

9. Hotlinking von Bildern verhindern

Beim sogenannten Hotlinking verlinkt eine dritte Person Medien auf seiner Website, insbesondere Bilder, die auf einem anderen Host gespeichert sind. So entsteht für den eigentlichen Besitzer ein höheres Datenvolumen, auf das er keinen Einfluss hat. Dank .htaccess-Tricks ist es möglich, das Verlinken auf bestimmte Dateitypen der eigenen Website mit folgendem Befehl zu blockieren:

# Verhindere Hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://ihre-webhosting-domain/.*$ [NC] [OR]
RewriteCond %{HTTP_REFERER} !^http://www.ihre-webhosting-domain/.*$ [NC] [OR]
RewriteRule .*\.(gif|GIF|jpg|JPG|bmp|BMP|wav|mp3|wmv|avi|mpeg)$ - [F]

10. Zeichensatz für Dokumente festlegen

Umlaute sind häufig ein störender Faktor, wenn man es mit Websites und Quellcodes zu tun hat. Im Quelltext werden Umlaute daher durch Zeichen bzw. Buchstabencodes ersetzt, damit sie wunschgemäß auf der Seite angezeigt werden. Mit der .htaccess-Datei kann verzeichnisgenau festgelegt werden, welche Zeichenkodierung für den jeweiligen Dokumententyp verwendet werden soll. Folgender Befehl bestimmt für alle Dokumente die Codierung UTF-8:

# Zeichenkodierung festlegen
AddDefaultCharset utf-8

Sollen nur bestimmte Dokumententypen auf ihre Codierung festgelegt werden, wird im Befehl die entsprechende Dateienendung angehangen:

# Zeichenkodierung für bestimmte Dateien festlegen
AddDefaultCharset utf-8 .css .htm .html .xhtml .php

.htaccess-Tricks: praktisch und einfach anzuwenden

Die oben genannten Tipps und Tricks, um .htaccess-Dateien zur Server-Konfiguration zu nutzen, geben nur einen kleinen Einblick in das Funktionsspektrum dieser praktischen Datei. Alle Befehle werden sofort vom Webserver befolgt, ohne dass dazu ein kompletter Neustart nötig ist.