WordPress FAQ

⌘K
  1. Start
  2. /
  3. WordPress FAQ
  4. /
  5. Glossar
  6. /
  7. .htaccess — Apache-Konfig...

.htaccess — Apache-Konfigurationsdatei erklärt

Die .htaccess-Datei ist eine versteckte Konfigurationsdatei des Apache-Webservers, mit der sich verzeichnisspezifische Server-Einstellungen vornehmen lassen, ohne die globale Serverkonfiguration zu verändern.

Was bedeutet das?

Der Name .htaccess steht für „Hypertext Access“. Die Datei beginnt mit einem Punkt, was unter Linux- und Unix-Systemen bedeutet, dass sie versteckt ist und bei einem normalen Verzeichnis-Listing nicht auftaucht. Eine .htaccess-Datei gilt für das Verzeichnis, in dem sie liegt, und für alle Unterverzeichnisse darunter. Das ermöglicht eine granulare Konfiguration einzelner Website-Bereiche, ohne den gesamten Server zu beeinflussen.

Damit .htaccess-Dateien überhaupt ausgewertet werden, muss der Apache-Webserver die Direktive AllowOverride entsprechend gesetzt haben. Der Standardwert laut Apache-Dokumentation ist None, was bedeutet, dass .htaccess-Dateien vollständig ignoriert werden. Auf den meisten Shared-Hosting-Umgebungen ist AllowOverride All voreingestellt, da Nutzer keinen Zugriff auf die globale Serverkonfiguration haben und die .htaccess-Datei ihr einziges Werkzeug für serverseitige Konfiguration ist.

Technisch betrachtet hat die .htaccess-Datei einen kleinen Performance-Nachteil: Apache muss bei jeder eingehenden Anfrage alle übergeordneten Verzeichnisse nach .htaccess-Dateien durchsuchen. Bei einem Seitenaufruf von /var/www/html/shop/produkte/ prüft Apache vier Verzeichnisebenen nacheinander. Auf dedizierten Servern, auf denen Sie direkten Zugriff auf die Hauptkonfigurationsdatei haben, ist es daher effizienter, Direktiven direkt in der httpd.conf oder in einer VirtualHost-Konfiguration zu hinterlegen.

Beispiel aus der Praxis

WordPress legt beim Speichern der Permalink-Struktur unter Einstellungen > Permalinks automatisch eine .htaccess-Datei im Stammverzeichnis der Installation an. Ohne diese Datei würden sprechende URLs wie /wordpress-wartung/ oder /shop/warenkorb/ mit einem 404-Fehler enden, da der Webserver nicht wüsste, wie er diese Anfragen an die WordPress-Logik weiterleiten soll. Die entscheidenden Rewrite-Regeln sehen so aus:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Neben den Permalink-Regeln nutzen viele Sicherheits-Plugins die .htaccess-Datei, um den direkten Zugriff auf wp-config.php oder das Verzeichnis /wp-admin/ auf bestimmte IP-Adressen zu beschränken, und um HTTPS-Weiterleitungen für alle HTTP-Aufrufe einzurichten.

Häufiger Fehler

Ein einziger Syntaxfehler in der .htaccess-Datei genügt, um einen HTTP-Fehler 500 (Internal Server Error) für die gesamte Website auszulösen. Das kann passieren, wenn ein Plugin eine ungültige Regel einträgt oder wenn bei einer manuellen Bearbeitung ein Tippfehler unterläuft. Die erste Maßnahme zur Fehlersuche: Benennen Sie die .htaccess-Datei per SFTP vorübergehend in .htaccess.bak um. Wenn die Seite danach wieder erreichbar ist, liegt das Problem in der .htaccess-Datei. Löschen Sie die fehlerhafte Version und gehen Sie im WordPress-Backend unter Einstellungen > Permalinks > Speichern, damit WordPress eine frische, fehlerfreie Datei erzeugt. Achten Sie zudem darauf, die Datei nicht unter Windows mit einem Editor zu bearbeiten, der Windows-Zeilenumbrüche (CRLF) einfügt, da einige Apache-Direktiven damit nicht korrekt interpretiert werden.

Verwandte Begriffe

Still stuck? Contact

Wie können wir helfen?