.htaccess

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

.htaccess (engl. hypertext accessHypertext-Zugriff“) ist eine Konfigurationsdatei auf NCSA-kompatiblen Webservern wie Apache, in der verzeichnisbezogene Regeln aufgestellt werden können.

Beispielsweise kann man darüber ein Verzeichnis oder einzelne Dateien durch HTTP-Authentifizierung vor unberechtigten Zugriffen schützen. Auch Fehlerseiten oder Weiterleitungen innerhalb des Servers (siehe Rewrite-Engine) lassen sich darin festlegen, ohne dass der Server neu gestartet werden muss: Änderungen in der .htaccess-Datei treten ohne Weiteres sofort in Kraft, weil die Datei bei jeder Anfrage an den Webserver ausgewertet wird. Bestimmungen in einer .htaccess wirken wie Directory-Abschnitte in zentralen Konfigurationsdateien wie einer httpd.conf. Sie gelten nur für das Verzeichnis, in dem die .htaccess gespeichert ist, und in allen seinen Unterverzeichnissen; können aber in den Unterverzeichnissen überschrieben werden.

Einsatzmöglichkeiten[Bearbeiten]

Zugriffsschutz[Bearbeiten]

Soll der Zugriff auf ein Verzeichnis durch die Abfrage von Login-Daten geschützt werden (hier /var/www/html), wird in diesem Verzeichnis eine .htaccess-Datei mit folgendem Inhalt angelegt.

AuthType Basic
AuthName "Titel des Passwortschutz"
AuthUserFile /var/www/html/.htpasswd
Require valid-user

Dabei verweist AuthUserFile auf eine Datei, die Benutzernamen und Passwort in der Form Benutzername:Hash enthält. Dieser Inhalt kann beispielsweise mit dem Tool htpasswd oder mit einem Online-Generator erzeugt werden.

$ htpasswd -nb derName dasPasswort
derName:$apr1$m0OaZVp0$9OHApAf65z24vNUZts8Zz1

Dabei stehen die Hashfunktionen MD5, bcrypt, crypt und SHA zur Auswahl. Ggf. wird das Passwort zusammen mit einem zufällig gewählten Salt gehasht, was dazu führt, dass auch identische Passwörter verschiedene Passwort-Hashwerte erhalten.

Request-Umleitung[Bearbeiten]

Besitzt der Webserver ein Modul zum internen Umschreiben einer URL, so lassen sich in der .htaccess-Datei Umleitungen definieren. Das folgende Beispiel forciert eine Weiterleitung auf http://www.example.com, sofern diese Adresse nicht auch Teil der Anfrage war.

RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

Weblinks[Bearbeiten]