Apache2 Workshop .htaccess-Dateien
Apache2 Workshop .htaccess-Dateien
Funktion und Einsatz
Dezentrale Konfiguration: Mit .htaccess-Dateien können Benutzer Verzeichniseinstellungen vornehmen, ohne direkten Zugriff auf die zentrale Apache-Konfiguration zu haben.
Ablageort: Die Datei mit dem Namen .htaccess wird direkt in das Verzeichnis geschrieben, dessen Verhalten beeinflusst werden soll (z. B. /var/www/html/private).
Vererbung: Einstellungen aus .htaccess gelten für das Verzeichnis, in dem sie liegen, sowie rekursiv für alle Unterverzeichnisse – sofern nicht anders überschrieben.
Wirksamkeit zur Laufzeit: Änderungen an .htaccess-Dateien greifen sofort, ohne dass der Webserver neu gestartet werden muss.
Aktivierung im Apache
AllowOverride-Direktive: Damit .htaccess-Dateien überhaupt ausgewertet werden, muss in der Apache-Konfiguration für das betreffende Verzeichnis ein entsprechender AllowOverride-Wert gesetzt sein.
Beispiel in der apache2.conf:
<Directory /var/www/html/private>
AllowOverride All
</Directory>
Werte für AllowOverride: None: .htaccess-Dateien werden ignoriert AuthConfig: Nur Authentifizierungsoptionen erlaubt FileInfo: z. B. für Rewrite und MIME-Typen All: Alle .htaccess-Optionen erlaubt
Typische Einsatzszenarien
Passwortschutz eines Verzeichnisses Ablageort: z. B. /var/www/html/private/.htaccess
AuthType Basic AuthName "Geschützter Bereich" AuthUserFile /var/www/.htpasswd Require valid-user
Weiterleitungen mit mod_rewrite Ablageort: z. B. /var/www/html/.htaccess
RewriteEngine On RewriteRule ^alteseite\.html$ /neue-seite.html [R=301,L]
Verzeichniszugriff sperren Ablageort: z. B. /var/www/html/private/.htaccess
Order allow,deny Deny from all
Sicherheitshinweise
Performance – Apache muss bei jeder Anfrage prüfen, ob eine .htaccess-Datei existiert. Das kann bei vielen Verzeichnissen die Leistung beeinträchtigen.
Zentral bevorzugen – Wo möglich, sollten Konfigurationen direkt in der apache2.conf oder vhost-Dateien vorgenommen werden, da das effizienter und sicherer ist.
Dateirechte – .htaccess-Dateien sollten dem Webserver gehören, aber nicht schreibbar sein, um Manipulationen zu verhindern.
Fazit
.htaccess-Dateien bieten flexible Konfigurationsmöglichkeiten, sollten aber nur dort verwendet werden, wo keine zentrale Konfiguration möglich ist oder gezielte Ausnahmen notwendig sind.