.htaccess
Eine .htaccess-Datei ist eine Konfigurationsdatei des Apache-Webservers, die zur Festlegung von verzeichnisbezogenen Regeln dient. Der Begriff htaccess steht für „hypertext access“ und stellt einen wichtigen Bestandteil der Serverkonfiguration dar.
Mit ihr kann der Zugriff auf bestimmte Verzeichnisse und Daten auf einem Server gesteuert werden.
Diese Dateien befinden sich im Verzeichnis des Webservers und sind für Nutzer, die ein Web-Projekt verwalten, in der Regel nicht direkt zugänglich.
Soll ein Benutzer die Berechtigung erhalten, die bestehenden Konfigurationen aus der zentralen Konfigurationsdatei für ein einzelnes Verzeichnis zu überschreiben und individuell anzupassen, wird ihm der Zugriff auf die .htaccess-Datei erlaubt. Der Benutzer kann dann .htaccess-Dateien in seinem eigenen Verzeichnis erstellen und nach seinen Anforderungen konfigurieren. Alle Einstellungen, die in einer .htaccess-Datei vorgenommen werden, gelten für das jeweilige Verzeichnis und alle darin enthaltenen Unterverzeichnisse. Diese Änderungen treten sofort in Kraft, ohne dass ein Neustart des Webservers erforderlich ist. Der Apache-Webserver sucht bei jedem Aufruf einer Website automatisch nach der entsprechenden .htaccess-Datei, um die dort festgelegten Konfigurationen ergänzend zur httpd.conf anzuwenden.
Erstellung einer .htaccess-Datei
.htaccess-Dateien sind einfache Textdateien, die mit einem Texteditor wie Notepad++ bearbeitet werden können. Um die Datei korrekt zu speichern, wählt man beim Speichern als Dateityp „Alle Dateien“ und gibt „.htaccess“ als Dateinamen ein, um zu verhindern, dass Windows ein „.txt“ anhängt. Viele Server bieten ihren Nutzern Remote-Zugang, sodass .htaccess-Dateien direkt auf dem Server erstellt und bearbeitet werden können.Die Konfigurationsdateien gelten für das Verzeichnis, in dem sie abgelegt werden, und für alle zugehörigen Unterverzeichnisse. Soll eine zusätzliche Konfiguration in einem Unterverzeichnis gelten, muss dort eine eigene .htaccess-Datei erstellt werden. Die Einträge der jeweiligen Konfigurationsdatei ergänzen die Konfigurationseinträge aus den übergeordneten Verzeichnissen.
Verwendung der .htaccess-Datei
Typische Einsatzbereiche der .htaccess-Datei sind die Zugriffssteuerung sowie das Umleiten und Umschreiben von URLs. Zudem werden die Konfigurationsdateien genutzt, um Fehlerdokumente zu verwalten und den Zugriff auf einzelne Ressourcen oder ganze Verzeichnisse zu regeln.
Umschreiben von dynamischen in statische URLs
Das Umschreiben von URLs wird mithilfe des Apache-Moduls „mod_rewrite“ durchgeführt. Dieses Modul wird hauptsächlich eingesetzt, um dynamische URLs in statische umzuschreiben, damit sie für Menschen und Suchmaschinen leichter lesbar sind. Ein Beispiel für einen Eintrag in die .htaccess-Datei zum Umschreiben von URLs ist:
RewriteEngine On
RewriteRule (.*)_(.*).html$ /example.php?url_isbn=$1 [qsappend,L]
In diesem Beispiel wird die dynamische URL /example.php in /example-1.html umgeschrieben, wobei 1 eine Rückreferenz darstellt.
Erstellen von passwortgeschützten Bereichen
Wer keine komplizierten Login-Skripte nutzen, aber dennoch passwortgeschützte Bereiche auf seinem Server einrichten möchte, kann dies ebenfalls mit der .htaccess-Datei tun. Zunächst wird eine Datei erstellt, in der die Benutzer und deren Passwörter gespeichert werden. Die Passwörter sollten aus Sicherheitsgründen verschlüsselt sein. Ein Beispiel für eine passwortgeschützte .htaccess-Konfiguration ist:
AuthType Basic
AuthName "Geschützter Bereich"
AuthUserFile /.htpasswd
AuthPGAuthoritative Off
require user User1 User2 User3 User4
Die .htpasswd-Datei mit den Benutzern und verschlüsselten Passwörtern wird separat erstellt:
User1:dsdR4578
User2:tTr84546
User3:dFd87f4d
User4:qOkp8745
Weiterleitungen
Ein weiterer wichtiger Anwendungsbereich von .htaccess-Dateien sind Weiterleitungen (Redirects). Diese Technik ermöglicht es, Anfragen auf eine neue URL umzuleiten, was besonders nützlich ist, wenn eine Website auf eine neue Domain umzieht. Ein Beispiel für eine Weiterleitung der gesamten Domain ist:
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://new-domain.tld/$1 [L,R=301]
Auch für das Weiterleiten einzelner Dateien innerhalb einer Website kann .htaccess genutzt werden:
Redirect 301 /old-path/file.html http://www.example.com/new-path/file.html
Mit diesen Beispielen lassen sich die häufigsten Anwendungsfälle für .htaccess-Dateien abdecken, um den Zugriff zu steuern, URLs umzuschreiben und Weiterleitungen einzurichten.