Was ist das HTACCESS-Dateiformat?
.htaccess ist eine Konfigurationsdatei für den Apache-Webserver. Im Gegensatz zu den meisten Dateien enthält .htaccess keinen Dateinamen vor dem Punkt - der führende Punkt ist Teil des Namens selbst, was sie unter Linux und macOS standardmäßig zu einer versteckten Datei macht. .htaccess-Dateien sollten nicht von unbefugten oder unqualifizierten Benutzern manuell bearbeitet werden. Die Datei speichert alle Konfigurationen im Klartext.
.htaccess-Dateien enthalten verzeichnisspezifische Konfigurationseinstellungen, die Serverfunktionen definieren, wie zum Beispiel:
- die Index- (Standard-) Seite eines Verzeichnisses,
- Zugriffsbeschränkungen für bestimmte IP-Adressen,
- benutzerdefinierte Fehlerseiten (z. B. 404 Seite nicht gefunden),
- URL-Weiterleitungen und Umschreibungen (
RewriteRule/RewriteCond), - Passwortschutz für Verzeichnisse (
AuthType,AuthUserFile), - zusätzliche Server-Sicherheitseinstellungen und benutzerdefinierte HTTP-Antwort-Header.
Damit .htaccess wirksam wird, muss AllowOverride in der übergeordneten httpd.conf auf einen anderen Wert als None gesetzt sein - auf gehärteten Servern ist die Verarbeitung von .htaccess oft vollständig deaktiviert.
Da Apache die .htaccess bei jeder HTTP-Anfrage an sein Verzeichnis liest, verursacht dies messbare Leistungseinbußen. Die eigene Dokumentation von Apache empfiehlt, entsprechende Anweisungen stattdessen in Server- oder VirtualHost-Konfigurationsblöcken zu platzieren, da diese nur einmal beim Start geladen werden.
.htaccess ist spezifisch für Apache; Nginx unterstützt dies nicht und erfordert entsprechende Regeln in der nginx.conf. Die Begleitdatei .htpasswd speichert gehashte Anmeldedaten für die HTTP-Basisauthentifizierung.
Sicherheit
RISIKO: HIGH.htaccess selbst ist eine harmlose Textdatei zum Öffnen in einem Editor. Sie stellt jedoch eine KRITISCHE Angriffsfläche auf Webservern dar: 1. Upload-Angriff: Wenn eine Web-App Benutzern erlaubt, Dateien in ein öffentlich zugängliches Verzeichnis hochzuladen und Apaches AllowOverride .htaccess zulässt, kann ein Angreifer, der eine präparierte .htaccess hochlädt, die PHP-Ausführung in einem Upload-Verzeichnis reaktivieren und Webshells ausführen. Abhilfe: Uploads außerhalb des Document Root speichern; AllowOverride None für Upload-Verzeichnisse festlegen; Erstellung von .htaccess in Upload-Verzeichnissen blockieren. 2. Offenlegung von Informationen: Ein fehlkonfigurierter Server, der .htaccess als Textdatei ausliefert (statt den Zugriff auf Dotfiles zu blockieren), legt die Serverkonfiguration, Verzeichnisstruktur und potenziell Verweise auf Anmeldedaten offen. Die Standardkonfiguration von Apache blockiert den Zugriff auf .htaccess-Dateien (FilesMatch ^\.ht).
Formatdetails
kurz gefasstProgramme zum Öffnen von HTACCESS-Dateien
Technische Details
technische Spezifikation| Ursprung | Geerbt von NCSA HTTPd (1994); Apache HTTP Server unterstützt es seit Version 1.0 (1995) |
| Dateiname | Dotfile - der vollständige Dateiname ist `.htaccess`; standardmäßig versteckt unter Unix und macOS |
| Dateityp | Reiner Text, verzeichnisspezifische Apache-Konfiguration |
| Kodierung | UTF-8 oder ASCII (muss zum Server-Gebietsschema passen) |
| Typische Dateigröße | 100 Bytes - 50 KB (die meisten Dateien unter 5 KB) |
| Verarbeitungsfrequenz | Wird von Apache bei jeder HTTP-Anfrage an das enthaltende Verzeichnis und alle Unterverzeichnisse gelesen |
| Voraussetzung | `AllowOverride` darf in der übergeordneten `httpd.conf` nicht `None` sein; andernfalls wird `.htaccess` stillschweigend ignoriert |
| Häufige Anweisungen | `RewriteRule`, `RewriteCond`, `ErrorDocument`, `AuthType`, `AuthUserFile`, `Header`, `Options`, `Redirect` |
| Syntax der Zugriffskontrolle | Apache 2.4 hat `Allow`/`Deny` durch `Require` ersetzt; ältere Syntax erfordert `mod_access_compat` |
| Nginx-Kompatibilität | Nicht unterstützt von Nginx; Regeln müssen manuell in `nginx.conf`-Anweisungen übersetzt werden |
| Leistungshinweis | Verursacht Festplattenlesevorgänge pro Anfrage; Apache empfiehlt, `httpd.conf` oder VirtualHost-Blöcke für die Konfiguration zu bevorzugen |
| Sicherheitsrisiko | Eine von einem Angreifer hochgeladene `.htaccess` in einem beschreibbaren Webverzeichnis kann die Ausführung von serverseitigen Skripten ermöglichen |
| Veröffentlicht | 1994 (NCSA HTTPd, predecessor to Apache; Apache inherited it from 1995) |
| Neueste Version | Apache HTTP Server 2.4.x directive syntax (current) |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | httpd.apache.org |
HTACCESS-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu HTACCESS-Dateien.
Häufig gestellte Fragen
Warum kann ich meine .htaccess-Datei nicht im Windows Explorer oder macOS Finder sehen?
Kann ich .htaccess mit Notepad bearbeiten?
Verwendet Nginx .htaccess-Dateien?
nginx.conf Location-Blöcke übersetzt werden.