.htaccess ist der Name einer Textdatei, mit der Zugriffe auf Webserver konfiguriert werden können. Damit lassen sich Zugangsbeschränkungen genauso einfach realisieren wie die Server-Reaktion auf Fehler oder die Umleitung von Seitenaufrufen. GIGA erklärt euch, wie ihr das macht.

Der Name htaccess – eigentlich .htaccess, mit vorangestelltem Punkt – ist eine Kurzform des englischen „hypertext access“, was so viel wie „Hypertext-Zugriff“ bedeutet. Damit kann man eine Menge machen, aber eben auch eine Menge kaputtmachen. Ihr solltet euch mit den Grundlagen beschäftigen und dort nur reinschreiben, was ihr auch versteht, um nicht euch und eure Besucher auszusperren.

Nie wieder dumme Passwörter! – TECHfacts Abonniere uns
auf YouTube

Was macht man mit .htaccess?

Vereinfacht gesagt, ist .htaccess ein Regelwerk für die Verzeichnisse eines Servers, das in einer Textdatei abgespeichert wird. Diese Konfigurationsdatei gilt dann für das aktuelle sowie alle darunter liegenden Verzeichnisse.

Ganz wichtig: Wenn ihr diese Datei mit einem Text-Editor wie Notepad++ erstellt, achtet darauf, dass er am Dateinamen nichts anfügt oder wegnimmt. Die Datei heißt „.htaccess“ – ohne Dateiendung wie „txt“ und auf jeden Fall mit einem vorangestellten Punkt. Der sorgt nämlich dafür, dass diese Datei nicht im Browser aufgerufen werden kann und vom Server versteckt wird.

Windows ist normalerweise so eingestellt, dass gar keine Dateiendungen angezeigt werden. Wie ihr das ändert, zeigt euch diese Bilderstrecke:

Ihr könnt also beispielsweise damit einzelne Verzeichnisse oder eben den ganzen Web-Auftritt mit einem Passwort schützen, den Zugriff bestimmter Besucher oder Browser verhindern oder den Aufruf ausgewählter Seiten auf andere Seiten umleiten. Und wenn ihr eine neue Web-Seite habt, kann .htaccess alle Besucher der alten Adresse zur neuen Domain führen.

Damit das funktioniert, muss der Provider zum einen den Gebrauch von .htaccess überhaupt zulassen und zum anderen muss er euch bestimmte Rechte gestatten. Speziell die „Rewrite-Rules“, also die Umleitung bestimmter Aufrufe zu anderen Zielen, stehen nicht überall zur Verfügung.

Falls also eines unserer Beispiele bei euch nicht funktioniert, untersucht die Befehle erst einmal auf Tippfehler und fragt anschließend beim Provider nach, ob das bei eurem Webspace überhaupt geht.

Anwendungsbeispiele und Tricks für .htaccess

Die Hauptanwendungen von .htaccess liegen in Umleitungen, im Passwortschutz und in der Zugriffssperre. Dafür möchten wir euch ein paar einfache Beispiele geben.

Umleitung mit .htaccess

Bevor ihr überhaupt an eine Umleitung durch .htaccess denken könnt, müsst ihr diese Option erst einmal aktivieren. Dazu schreibt ihr in die Datei:

RewriteEngine On

Danach folgen die Anweisungen zur Umleitung.

Angenommen, ihr seid auf eine neue Domain umgezogen und habt euren gesamten Webauftritt dorthin kopiert, dann leitet auf die neue Domain um:

RewriteEngine On
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://neue-domain.de/$1 

Das „$1“ hinter dem Domainnamen sorgt dafür, dass die Aufrufe 1:1 übersetzt werden. Wer aus seinen Lesezeichen die Seite „kontakt“ aufruft, wird auch auf der neuen Domain dort landen.

Lasst ihr dieses „$1“ weg, landen alle Aufrufe irgendwelcher Seiten der alten Domain auf der Startseite der neuen Domain.

RewriteEngine On
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://www.neue-domain.de/ 

Der Parameter „R=301“ lässt Suchmaschinen erkennen, dass es sich um eine dauerhafte Umleitung handelt. Würdet ihr stattdessen „R=302“ schreiben, so hieße das, die Umleitung ist nur temporär und wird in Zukunft wieder rückgängig gemacht. In dem Fall würde die Suchmaschine nicht die neue Adresse in ihren Katalog aufnehmen.

.htaccess / .htpasswd: Server-Verzeichnisse mit einem Passwort schützen

Um mit .htaccess ein Verzeichnis durch ein Passwort zu schützen, benötigt ihr zwei Dateien:

  • .htaccess – in der die Pfadanweisungen stehen
  • .htpasswd – in der die zulässigen Benutzernamen und die Passwörter stehen.

Hier ergibt sich jedoch ein großes Problem: Man kann die Passwörter im Klartext in der Datei .htpasswd notieren. Dort können sie allerdings ausgelesen und missbraucht werden. Aus diesem Grund solltet ihr sie verschlüsseln. Viele Provider bieten dafür extra eine Funktion an, bei der ihr die beiden Dateien nicht allein erstellen müsst, sondern nur noch die gewünschten Benutzernamen und Passwörter angebt.

So schützt ihr mit .htaccess und .htpasswd ein Verzeichnis:

  1. Erstellt in dem zu schützenden Verzeichnis eine .htaccess-Datei mit folgendem Inhalt:
    AuthType Basic
    AuthName "Passwortgeschützter Bereich"
    AuthUserFile /pfad/zur/datei/.htpasswd
    Require valid-user
  2. Erstellt eine Datei namens .htpasswd (mit führendem Punkt und ohne Dateiendung!). Die Datei kann auch anders heißen, muss dann aber auch so in der .htaccess stehen!
  3. Geht zu diesem htpasswd-Generator und erzeugt dort den Eintrag für eure Passwortdatei. Es ist zu empfehlen, dass ihr mindestens die Bcrypt-Verschlüsselung wählt.
  4. Legt sie an der Stelle ab, auf die der Pfad in .htaccess verweist.

Jetzt könnt ihr das gewählte Verzeichnis im Browser aufrufen und werdet nach dem korrekten Benutzernamen und Passwort gefragt.

Die Eingabe bei „AuthName“ ist das, was ihr bei der Passwortabfrage angezeigt bekommt. Dort könnt ihr also auch etwas anderes wählen.

Zugriff für bestimmte IPs mit .htaccess verbieten

Wenn ihr Spammer aussperren wollt, könnt ihr deren IP-Adressen in die .htaccess eintragen und sobald sie auf die Seite zugreifen wollen, bekommen sie eine Fehlermeldung (Fehler 403 – Verboten).

Die einfachste Angabe, um in der Datei .htaccess einzelne IP-Adressen oder ganze IP-Bereiche zu sperren, ist die folgende:

order allow,deny
deny from 188.130.136.150
allow from all

Dadurch wird eine IP-Adresse gesperrt. Um noch eine zu sperren, schreibt ihr sie in die nächste Zeile hinter „deny from“.

Wenn ihr zum Beispiel wisst, dass sämtliche IPs hinter dem Bereich 188.130.***.*** schlecht sind, könnt ihr auch schreiben

deny from 188.130.

Alles in diesem Bereich, das nach dem letzten Punkt kommen kann, wird so blockiert.

Ihr könnt das auch als IP-Subnet schreiben und sperrt dann mit

deny from 188.130.136.0/24

den gesamten Bereich 188.130.136.0 - 188.130.136.255 aus.

Den IP-Bereich und die Herkunft eines Spammers bekommt ihr zum Beispiel bei DNSlytics heraus.

Um alle Nutzer eines Anbieters (oder sogar Landes) auszusperren, könnt ihr auch dessen Domainnamen oder Toplevel-Domain in die .htaccess eintragen.

„deny from .ru“ sperrt das ganze Land Russland aus. „deny from .dreamhost.com“ blockiert alle Besucher, die diese Domain übertragen. Wichtig ist hier aber, dass viele Server zwar von einer IP kommen, aber keinen „PTR Record“ angeben. Die DNS ist also nicht mit einem Hostnamen verbunden. Ihr erwischt also mit der Sperre „deny from .ru“ jeden, der sich auch mit einem russischen Hostnamen ausweist, aber eben keinen, der nur mit IP kommt.

Online-Sicherheit und Privatsphäre: Wichtig oder nicht? (Umfrage)

Du willst keine News rund um Technik, Games und Popkultur mehr verpassen? Keine aktuellen Tests und Guides? Dann folge uns auf Facebook (GIGA Tech, GIGA Games) oder Twitter (GIGA Tech, GIGA Games).