.htaccess Datei (abgeleitet aus dem Englischen hypertext access – Hypertext-Zugriff) stellt eine Server-Konfigurationsdatei für Verzeichnisse dar. In dieser Datei können Einstellungen auf NCSA-Servern bzw. Servern, die mit diesen kompatibel sind, vorgenommen werden (z.B. Apache-Server, die im Web zum Quasi-Standard geworden sind). Zu den typischen Einsatzmöglichkeiten gehört bspw. die Einrichtung des Zugriffsschutzes mit Hilfe der HTTP-Authentifizierung. Dieser Schutz lässt sich sowohl für ein einzelnes Verzeichnis als auch für einzelne Dateien anlegen. Da Apache-Server inzwischen sehr verbreitet sind, ist auch diese Art des Zugriffsschutzes sehr beliebt.
.htaccess Datei ist eine einfache Textdatei, die auch von Menschen gelesen werden kann. Der Inhalt der Datei kann mit einem Texteditor bearbeitet werden. Sofern ein Telnet- oder SSH-Zugang zum Server-Rechner vorliegt, auf dem das Web-Angebot liegt, können solche Dateien auch direkt auf dem Server erstellt und bearbeitet werden. Dafür muss ein geeigneter Texteditor aufgerufen werden. Anderenfalls (z.B. bei einem FTP-Zugang) kann eine .htaccess Datei mit Hilfe eines Texteditors lokal erstellt und anschließend hochgeladen werden. Im Allgemeinen werden für eine .htaccess Datei dieselben Syntax-Regeln verwendet wie bei den Hauptkonfigurationsdateien. Es ist zu beachten, dass Definitionen in den Hauptkonfigurationsdateien als überschreibbar (AllowOverride) ausgewiesen werden. Andernfalls werden die Anweisungen, die die Datei enthält, als unwirksame ignoriert.
Grundsätzlich hat eine .htaccess Datei ihre Gültigkeit für das Verzeichnis, in dem sie abgelegt wird, und dessen Unterverzeichnisse samt Unterverzeichnisse zweiter Ebene. Falls für ein bestimmtes Unterverzeichnis andere Regeln gelten sollen, muss dort eine separate .htaccess Datei gespeichert werden. Im Laufe der letzten Jahre hat die Anzahl der zulässigen Anweisungen, die man in einer .htaccess Datei vergeben kann, ständig zugenommen. Dementsprechend ist auch der Umfang der Konfigurationsmöglichkeiten mitgewachsen. Welche Anweisungen tatsächlich eingeräumt werden, hängt jedoch im Wesentlichen davon ab, welche Rechte vom Server-Administrator in der zentralen Konfigurationsdatei erlaubt wurden.
Zugriffschutz mit Hilfe der .htaccess Datei
Die .htaccess Datei ist der gängige Weg, damit nur ein definierter Kreis an Benutzern den Zugriff auf bestimmte Dateien erhält. Üblicherweise werden dann in der .htaccess Datei Benutzername und Passwort gespeichert. Eine weitere Möglichkeit besteht darin, ganze Benutzerkreise automatisch auszusperren, ohne dass sie über einen Passwortzugang verfügen. Es können auch nur auserwählte Nutzer ausgesperrt werden.
Mit Hilfe einer .htaccess Datei besteht die Möglichkeit, bestimmte IP-Adressen oder IP-Netzbereiche vom Zugriff auf die Webseite auszuschließen. Im Umkehrschluss bedeutet das, dass man auch sämtlichen IP-Adressen den Zugriff verwehren kann und nur ganz bestimmten den Zugriff erlaubt. In diesem Falle erhalten User, die nicht über eine autorisierte IP-Adresse verfügen, eine http-Fehlermeldung mit dem http-Statuscode 403 – der Zugriff auf die Webseite wird somit verweigert. Dies wird z.B. für interne Netzwerke eingesetzt, z.B. wenn nur Mitarbeiter einer Firma im unternehmensinternen Intranet Seiteninhalte aufrufen dürfen.
In der .htaccess Datei können außerdem Optionen für das Verzeichnis-Browsing festgelegt werden. Damit kann die optische Darstellung beeinflusst werden, wie Verzeichnisliste (falls erlaubt) im Browser angezeigt werden sollen. Dabei liest der Webserver den Verzeichnisinhalt ein und generiert dynamisch einen HTML-Code, der im Browser angezeigt wird. Mit Hilfe der in der .htaccess Datei definierten Optionen kann die HTML-Angabe beeinflusst werden.
Außerdem kann man über die .htaccess Datei interne Verknüpfungen sowie Fehlerseiten einstellen. Da sämtliche Änderungen in der .htaccess Datei sofort wirksam werden, muss der Server nicht neu gestartet werden. Bei jeder Anfrage an den Webserver wird nämlich die .htaccess Datei neu ausgelesen. Einstellungen, die in diesen Dateien vorgenommen werden, wirken ähnlich wie Directory-Abschnitte in zentralen Konfigurationsdateien – sie haben ihre Gültigkeit nur für das Verzeichnis, in dem sie abgelegt wurden und den dazu gehörigen Unterverzeichnissen. In den Unterverzeichnissen können sie allerdings überschrieben werden.
Automatische Weiterleitungen ebenfalls möglich
Nicht zuletzt sind mit der .htaccess Datei automatische Weiterleitungen oder eigene Regelungen für den Fall von HTTP-Fehlermeldungen möglich. Je nach bestimmten Bedingungen können alternative Inhalte angeboten werden. Auf diese Weise lassen sich z.B. Webseiten mit unterschiedlichen Landessprachen anzeigen, und zwar abhängig von der Sprache des benutzten Web-Browsers. Wird eine bestimmte URL angefordert, kommuniziert zunächst einmal der Browser (Client) und der Webserver. Dieser Dialog dauert nur Bruchteile von Sekunden und bleibt von normalen Usern unbemerkt. Dabei tauschen der Client und der Browser u.a. Informationen darüber aus, welche Sprache und welchen Zeichensatz der Client am besten versteht bzw. bevorzugt und welche Angaben der Server tatsächlich übermitteln soll. Dieser Dialog wird in der Regel vom Server bestimmt.
Dabei sind alle dafür notwendigen Bedingungen in der Spezifikation des HTTP-Protokolls rfc216 definiert, das diesem Prozess zugrunde liegt. Falls der User bspw. einen Browser mit deutschsprachiger Benutzeroberfläche benutzt, wird entsprechend eine deutschsprachige Index-Webseite übermittelt. Ist der Browser hingegen so eingestellt, dass englische Sprache abgebildet wird, wird auch eine englischsprachige Index-Seite gesendet. Alternativ kann der Server eine HTL-Datei oder eine WML-Datei (WML steht für Wireless Markup Language) senden, weil er erkennt, ob der Client ein herkömmlicher aufrufender Web-Client ist oder ein mobiler Client (bspw. ein Handy). Letzterer wird WAP- bzw. WML-basierte Inhalte erhalten.
.htaccess Datei ermöglicht Kontrolle über Caches
Mit Hilfe der .htaccess Datei kann man außerdem festlegen, dass die Daten in komprimierter Form an den Browser übermittelt werden – oder alternativ beim Aufrufen einzelner Adressen auf eine andere URL umgeleitet werden soll. .htaccess-Dateien werden außerdem häufig von Servern genutzt, um lange kryptische URLs in kurze und prägnante Adressen umzuschreiben. Vor dem Hintergrund der Suchmaschinenoptimierung ist das ein nicht zu vernachlässigender Aspekt. Darüber hinaus ermöglichen .htaccess-Dateien die Kontrolle über Caches bestimmter Seiten durch Browser oder Proxy. Auf diese Weise können die Bandbreitennutzung sowie die Serverauslastung reduziert werden.