.htaccess

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

.htaccess (aus englisch 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 der httpd.conf. Sie gelten nur für das Verzeichnis, in dem die .htaccess gespeichert ist, und für alle seine Unterverzeichnisse; können aber in den Unterverzeichnissen überschrieben werden.

Einsatzmöglichkeiten

[Bearbeiten | Quelltext bearbeiten]

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

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

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

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

Dabei stehen die Hashfunktionen MD5, bcrypt, crypt und SHA zur Auswahl. Manchmal werden, bevor der Hashwert berechnet wird, an das Passwort zufällige Zeichen angehängt – Salt genannt (englisch für Salz), wodurch auch identischen Passwörtern unterschiedliche Passwort-Hashwerte zugeordnet werden.

Request-Umleitung

[Bearbeiten | Quelltext bearbeiten]

Wenn auf dem Webserver ein Modul installiert ist, das eine URL abändern kann, dann können in der .htaccess-Datei Umleitungen definiert werden.

Das folgende Beispiel besagt:

  • in Zeile 1: „Wenn www.example.com nicht in der Anfrage vorkommt, …“
  • in Zeile 2: „… dann leite weiter nach https://www.example.com.“
 RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
 RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]