Webmaster können auf NCSA-kom­pa­ti­blen Web­ser­vern wie dem Apache HTTP Server mithilfe der Kon­fi­gu­ra­ti­ons­da­tei .htaccess (dt. „Hypertext-Zugriff“) ver­zeich­nis­be­zo­ge­ne Regeln auf­stel­len. So kann bei­spiels­wei­se fest­ge­legt werden, welche Benutzer auf bestimmte Dateien zugreifen dürfen. Auch das Ein­rich­ten au­to­ma­ti­scher Wei­ter­lei­tun­gen ist ein typisches Beispiel für die Mög­lich­kei­ten der .htaccess-Hacks.

Was ist eine .htaccess-Datei ei­gent­lich genau?

Bei der .htaccess handelt es sich um eine text­ba­sier­te Datei, durch deren Ver­wen­dung be­rech­tig­te Nutzer ver­zeich­nis­spe­zi­fisch die Kon­fi­gu­ra­ti­on eines NCSA-kom­pa­ti­blen Web­ser­vers be­ein­flus­sen können. Der be­kann­tes­te Webserver des „National Center for Su­per­com­pu­ting Ap­pli­ca­ti­ons“ (NCSA) ist der weit ver­brei­te­te Apache HTTP Server. Seine Ar­beits­wei­se wird durch eine oder mehrere zentrale Datei(en) gesteuert, die man „httpd.conf“ nennt. Diese über­ge­ord­ne­ten Kon­fi­gu­ra­ti­ons­da­tei­en sind in der Regel innerhalb des Pro­gramm­ver­zeich­nis­ses des Web­ser­vers selbst ge­spei­chert und werden vom Server-Ad­mi­nis­tra­tor definiert. In dieser Datei legt er unter anderem fest, ob ein Benutzer die Be­rech­ti­gung erhält, die Server-Kon­fi­gu­ra­ti­on mithilfe von .htaccess-Tricks zu verändern. Ist er be­rech­tigt, kann ein User .htaccess-Dateien für jedes ge­wünsch­te Ver­zeich­nis anlegen und be­ar­bei­ten.

Bei jedem Sei­ten­zu­griff scannt der Webserver rekursiv sämtliche Ver­zeich­nis­se ohne die In­for­ma­tio­nen zwi­schen­zu­spei­chern. Ser­ver­ein­stel­lun­gen, die mit einer .htaccess-Datei vor­ge­nom­men werden, sind daher ab dem Moment gültig, in dem die .htacces im je­wei­li­gen Ver­zeich­nis abgelegt wird – ganz ohne Ser­ver­neu­start. Die Schreib­wei­se sollte zu 100 Prozent korrekt sein, denn eine falsch­ge­schrie­be­ne .htaccess ver­hin­dert unter Umständen den Sei­ten­zu­griff auf dem kom­plet­ten Server. Werden die .htaccess-Tricks sachgemäß angewandt, erhält man jedoch einige hilf­rei­che und nützliche Features zur Ver­wal­tung des Web­ser­vers. Da sie schnell umgesetzt und einfach in die be­stehen­de Sys­tem­struk­tur ein­ge­bet­tet werden können, wird oft auch die Be­zeich­nung .htaccess-Hacks verwendet.

Eine .htaccess-Datei erstellen – so funk­tio­niert’s

Da .htaccess-Dateien reine Text­da­tei­en sind, können sie mit jedem Text­edi­tor erstellt und be­ar­bei­tet werden. Je nach ver­füg­ba­rem Zugang zum Webserver un­ter­schei­det sich das Vorgehen bei der Er­stel­lung. Mit Telnet- oder SSH-Zugang können .htaccess-Dateien direkt auf dem Server erstellt und be­ar­bei­tet werden. Steht nur ein FTP-Zugang zur Verfügung, muss die Datei lokal erstellt und an­schlie­ßend hoch­ge­la­den werden. Dass der Name mit einem Punkt beginnt, ist üblich bei Unix Systemen, bei denen ver­zeich­nis­spe­zi­fi­sche Kon­fi­gu­ra­ti­ons­da­tei­en stets mit einem Punkt beginnen. Das kenn­zeich­net sie als „versteckt“, was bei der Ver­wen­dung eines gra­fi­schen FTP-Clients jedoch dazu führen kann, dass die hoch­ge­la­de­ne .htaccess-Datei ver­schwun­den zu sein scheint.

Der vor­an­ge­stell­te Punkt sorgt auch bei der lokalen .htaccess-Er­stel­lung auf Windows-Systemen für ein Problem, das sich al­ler­dings schnell lösen lässt. Da Windows den Punkt anders in­ter­pre­tiert als Linux, dürfen Da­tei­na­men, die mit einem Punkt beginnen, nicht un­mit­tel­bar vergeben werden. Damit der Editor also nicht das typische .txt anhängt, sollte beim Speichern unter Dateityp „Alle Dateien“ aus­ge­wählt werden. Ist die .htaccess-Datei mit dem ge­wünsch­ten Befehl bestückt, muss sie nur noch in das Ziel­ver­zeich­nis befördert werden. Sie ist dann sofort gültig – auch für sämtliche Un­ter­ver­zeich­nis­se. 

Server kon­fi­gu­rie­ren mit .htaccess-Hacks

Vom Server-Ad­mi­nis­tra­tor au­to­ri­sier­te Benutzer haben durch .htaccess-Dateien die Mög­lich­keit, schnell und un­kom­pli­ziert Einfluss auf die Kon­fi­gu­ra­ti­on des Web­ser­vers zu nehmen. So können sie bei­spiels­wei­se ganze Ver­zeich­nis­se durch HTTP-Au­then­ti­fi­zie­rung vor un­be­rech­tig­ten Zugriffen schützen. Außerdem lassen sich eigene Feh­ler­sei­ten oder Wei­ter­lei­tun­gen ein­rich­ten. Es gibt eine Vielzahl un­ter­schied­li­cher .htaccess-Tipps und -Tricks. Die zehn nütz­lichs­ten werden in den folgenden Ab­schnit­ten kurz erläutert:  

SSL-Zer­ti­fi­kat kaufen
Sichern Sie sich Ihr SSL-Zer­ti­fi­kat
  • Ver­schlüs­selt die Website-Kom­mu­ni­ka­ti­on
  • Ver­hin­dert Si­cher­heits­war­nun­gen
  • Ver­bes­sert die Google-Plat­zie­rung

1. Al­ter­na­ti­ve Feh­ler­sei­ten

Webserver zeigen per Vor­ein­stel­lung eine stan­dard­mä­ßi­ge HTML-Datei bzw. hart kodierte Meldung an, wenn es beim Zugriff auf die Website zu einem Fehler kommt. Diese Feh­ler­mel­dun­gen sind oft nicht sehr hübsch und ein­falls­reich – also alles andere als be­su­cher­freund­lich. Mithilfe von .htaccess ist es möglich, eigene Ausweich-Seiten oder -Meldungen ein­zu­spei­sen, die bei einem Webshop z.B. auf einen ver­gleich­ba­ren Artikel verweisen. Für das Einbinden eigener Feh­ler­sei­ten sind folgende Angaben in der .htaccess notwendig:

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

Liegt die Feh­ler­sei­te oberhalb des Root-Ver­zeich­nis­ses der Website oder auf einer externen URL, kann auch die komplette URL in die .htaccess, die sich in diesem Fall im Root-Ver­zeich­nis befinden muss, ein­ge­ge­ben werden: Liegt die Feh­ler­sei­te oberhalb des Root-Ver­zeich­nis­ses der Website oder auf einer externen URL, kann auch die komplette URL in die .htaccess, die sich in diesem Fall im Root-Ver­zeich­nis befinden muss, ein­ge­ge­ben werden:  

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

2. Wei­ter­lei­tun­gen

Ein großes Ein­satz­feld von .htaccess-Dateien bilden Wei­ter­lei­tun­gen bzw. Redirects. Es lassen sich bei­spiels­wei­se einzelne Dateien innerhalb einer Website umleiten oder auch Anfragen auf eine andere Domain wei­ter­lei­ten. Das ist vor allem praktisch, wenn die Website umzieht. Im Root-Ver­zeich­nis ge­spei­chert, sorgt folgender Code dafür, dass Anfragen an die ur­sprüng­li­che Domain vom Server zur neuen Domain um­ge­lei­tet 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 Sei­ten­na­me geändert hat:

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

3. Pass­wort­ge­schütz­te Bereiche

Wer keine um­fang­rei­chen Login-Scripte mit PHP schreiben möchte, aber dennoch ein ge­schütz­tes Ver­zeich­nis oder ge­schütz­te Dateien auf seinem Webserver benötigt, kann statt­des­sen .htaccess-Tricks zur Ein­rich­tung ge­schütz­ter Bereiche verwenden. Zunächst wird für diese Art des Pass­wort­schut­zes eine zweite Datei mit dem Namen .htpasswd benötigt, in welcher die je­wei­li­gen Pass­wör­ter ge­spei­chert werden. Diese dürfen in Unix-Systemen nur ver­schlüs­selt ein­ge­tra­gen werden – zu diesem Zweck gibt es im Web ver­schie­de­ne .htpasswd Ge­ne­ra­to­ren. Ge­schütz­te Ver­zeich­nis­se können fol­gen­der­ma­ß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

Zu­sätz­lich wird die .htpasswd mit den Usern inklusive ihrer ver­schlüs­sel­ten Pass­wör­ter erstellt: Zu­sätz­lich wird die .htpasswd mit den Usern inklusive ihrer ver­schlüs­sel­ten Pass­wör­ter erstellt:

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

Während die .htpasswd-Datei an­schlie­ßend idea­ler­wei­se oberhalb des Root­ver­zeich­nis­ses abgelegt wird, muss sich die .htaccess in dem Ver­zeich­nis befinden, das geschützt werden soll. Während die .htpasswd-Datei an­schlie­ßend idea­ler­wei­se oberhalb des Root­ver­zeich­nis­ses abgelegt wird, muss sich die .htaccess in dem Ver­zeich­nis befinden, das geschützt werden soll.

4. PHP Memory Limit erhöhen

Die Nutzung von PHP-An­wen­dun­gen un­ter­liegt einem be­stimm­ten Memory Limit. Das Limit bestimmt den maximalen Ar­beits­spei­cher­ver­brauch, den alle ver­wen­de­ten PHP-Scripts auf dem Server gemeinsam ver­ur­sa­chen 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 Spei­cher­be­darf und Ser­ver­vor­aus­set­zung können auch andere Limits gesetzt werden. Der Wert 128M steht in diesem Fall für ein Limit von 128 Megabyte. Je nach Spei­cher­be­darf und Ser­ver­vor­aus­set­zung können auch andere Limits gesetzt werden. 

5. Die Zeitzone des Web­ser­vers ä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 blo­ckie­ren

Es ist möglich, be­stimm­ten IP-Adressen oder -Bereichen den Zugriff auf Websites zu verwehren. Mit dem richtigen Eintrag in der .htaccess können sogar alle IP-Adressen aus­ge­schlos­sen und nur ganz be­stimm­ten der Zugriff gewährt werden. So kann das Web-Angebot bei­spiels­wei­se nur den Mit­ar­bei­tern im fir­men­ei­ge­nen Intranet zur Verfügung gestellt werden. Der folgende Befehl fasst einige der möglichen Zu­griffs­be­schrän­kun­gen 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 In­ter­pre­ta­ti­ons­rei­hen­fol­ge der ein­ge­tra­ge­nen Angaben fest­ge­legt – die Rei­hen­fol­ge ist dabei egal. Die weiteren Einträge kom­mu­ni­zie­ren dem Webserver, dass alle Benutzer mit .aol.com-Kennung sowie alle mit der nu­me­ri­schen IP-Adresse des Bereichs 192.168 von der Benutzung der Website aus­ge­schlos­sen sind. Eine Ausnahme bildet dabei der User mit der IP 192.168.220.102. Mit dem Eintrag „Order“ wird die In­ter­pre­ta­ti­ons­rei­hen­fol­ge der ein­ge­tra­ge­nen Angaben fest­ge­legt – die Rei­hen­fol­ge ist dabei egal. Die weiteren Einträge kom­mu­ni­zie­ren dem Webserver, dass alle Benutzer mit .aol.com-Kennung sowie alle mit der nu­me­ri­schen IP-Adresse des Bereichs 192.168 von der Benutzung der Website aus­ge­schlos­sen sind. Eine Ausnahme bildet dabei der User mit der IP 192.168.220.102.  

7. Umleitung der Web­prä­senz von HTTP auf HTTPS

Wer für seine Domain ein SSL-Zer­ti­fi­kat nutzt, hat die Mög­lich­keit, die Domain per .htaccess-Befehl auf den ver­schlüs­sel­ten HTTPS-Aufruf um­zu­lei­ten:

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

8. Datei-Zugriff über den Browser ak­ti­vie­ren

Mit folgendem Befehl kann der Ver­zeich­nis­in­halt im Browser angezeigt und anderen Benutzern zum Download angeboten werden:

# Zeige Verzeichnisinhalt an
Options +Indexes

9. Hot­lin­king von Bildern ver­hin­dern

Beim so­ge­nann­ten Hot­lin­king verlinkt eine dritte Person Medien auf seiner Website, ins­be­son­de­re Bilder, die auf einem anderen Host ge­spei­chert sind. So entsteht für den ei­gent­li­chen Besitzer ein höheres Da­ten­vo­lu­men, auf das er keinen Einfluss hat. Dank .htaccess-Tricks ist es möglich, das Verlinken auf bestimmte Da­tei­ty­pen der eigenen Website mit folgendem Befehl zu blo­ckie­ren:

# 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. Zei­chen­satz für Dokumente festlegen

Umlaute sind häufig ein störender Faktor, wenn man es mit Websites und Quell­codes zu tun hat. Im Quelltext werden Umlaute daher durch Zeichen bzw. Buch­sta­ben­codes ersetzt, damit sie wunsch­ge­mäß auf der Seite angezeigt werden. Mit der .htaccess-Datei kann ver­zeich­nis­ge­nau fest­ge­legt werden, welche Zei­chen­ko­die­rung für den je­wei­li­gen Do­ku­men­ten­typ verwendet werden soll. Folgender Befehl bestimmt für alle Dokumente die Codierung UTF-8:

# Zeichenkodierung festlegen
AddDefaultCharset utf-8

Sollen nur bestimmte Do­ku­men­ten­ty­pen auf ihre Codierung fest­ge­legt werden, wird im Befehl die ent­spre­chen­de Da­tei­enen­dung an­ge­han­gen:

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

.htaccess-Tricks: praktisch und einfach an­zu­wen­den

Die oben genannten Tipps und Tricks, um .htaccess-Dateien zur Server-Kon­fi­gu­ra­ti­on zu nutzen, geben nur einen kleinen Einblick in das Funk­ti­ons­spek­trum dieser prak­ti­schen Datei. Alle Befehle werden sofort vom Webserver befolgt, ohne dass dazu ein kom­plet­ter Neustart nötig ist.

Zum Hauptmenü