Webhosting

.htaccess-Datei

Definition

Die .htaccess-Datei ist eine Konfigurationsdatei, die der Webserver Apache, aber auch LiteSpeed, in ihrem Ordner und allen Unterordnern auswertet. Mit ihr lassen sich Einstellungen ohne Zugriff auf die Hauptkonfiguration ändern: Umschreiben von Adressen für die WordPress-Permalinks, Weiterleitungen, Zugriffsbeschränkungen, Header oder Caching.

.htaccess-Datei, Webhosting

Der Dateiname beginnt mit einem Punkt, weshalb viele FTP-Programme und Dateimanager ihn standardmäßig ausblenden. Die .htaccess-Datei gehört zur Welt von Apache: LiteSpeed liest sie ebenfalls, Nginx, Caddy und IIS ignorieren sie dagegen. Sie ist das Grundwerkzeug im Shared Hosting, wo du keinen Zugriff auf die Serverkonfiguration hast.

Wie Apache die .htaccess liest

Die Apache-Dokumentation beschreibt sie als Möglichkeit, die Konfiguration Ordner für Ordner zu ändern, wenn man keine Root-Rechte hat. Alles hängt von der Direktive AllowOverride in der Hauptkonfiguration ab: Ihr Standardwert ist None, und dann werden .htaccess-Dateien komplett ignoriert. Hoster schalten sie frei, damit Permalinks, Weiterleitungen und Zugriffsbeschränkungen funktionieren.

Schema, wie Apache die .htaccess-Dateien bei einer Anfrage an /wp-content/uploads/foto.jpg liest. Apache wendet zuerst die Hauptkonfiguration an, in der AllowOverride die .htaccess-Dateien erlaubt oder nicht. Dann liest es die .htaccess im Root der Website mit den WordPress-Regeln, danach die in wp-content und schließlich die in uploads, etwa um die Ausführung von PHP zu verbieten. Die Regeln addieren sich, bei Konflikten gewinnt der am tiefsten liegende Ordner, und diese Dateien werden bei jeder Anfrage neu gelesen.
Apache sucht bei jeder Anfrage in jedem Ordner des angeforderten Pfads nach einer .htaccess und fasst deren Regeln zusammen.

Sind sie erlaubt, sucht Apache in jedem Ordner des angeforderten Pfads nach einer .htaccess und liest diese Dateien bei jeder Anfrage neu. Eine Änderung greift also sofort und ohne Neustart, kostet aber zusätzliche Lesezugriffe. Daher der Rat der Dokumentation: Wenn du Zugriff auf die Hauptkonfiguration hast, gehören deine Regeln dorthin und nicht in .htaccess-Dateien.

Der WordPress-Block

WordPress schreibt in die .htaccess im Root die Rewrite-Regeln, mit denen die Permalinks funktionieren:

# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Alles zwischen den Markierungen # BEGIN WordPress und # END WordPress kann WordPress neu schreiben, zum Beispiel wenn du die Permalink-Einstellungen speicherst. Platziere deine eigenen Regeln außerhalb dieser Markierungen, ebenso wie Plugins es mit ihren eigenen Blöcken tun.

Nützliche Schutzregeln

  • Den direkten Zugriff auf die wp-config.php und auf vergessene sensible Dateien sperren, etwa .sql-Backups, den Ordner .git oder debug.log; mehr dazu in unserem Artikel über offen zugängliche sensible Dateien.
  • Die Ausführung von PHP in wp-content/uploads mit einer eigenen .htaccess für diesen Ordner verhindern.
  • wp-admin per IP-Adresse oder HTTP-Passwort einschränken, wie in unserer Anleitung, um wp-admin auf Serverebene zu schützen.
  • Das Hotlinking deiner Bilder anhand des Referer-Headers eindämmen.

Ein Syntaxfehler löst sofort einen Fehler 500 für den ganzen Ordner aus: Leg vor jeder Änderung eine Kopie der Datei an.

Video: „Was ist die .htaccess Datei und wie erstelle ich diese?“ (checkdomain.de)

.htaccess und WordPress

Auf einem Nginx-Server hat eine .htaccess keinerlei Wirkung: Ihre Regeln müssen in die Datei nginx.conf übertragen werden, wofür du oft die Hilfe deines Hosters brauchst. Viele Cache- und Sicherheits-Plugins setzen die .htaccess trotzdem voraus. WP Masquerade braucht sie nur für die Datei-Aliase der Pro-Version, deren Regeln es für jeden Server erzeugt, und um seinen eigenen Ordner zu verbergen: Die Seite kompatible Server und Caches zeigt, wo diese Regeln hingehören, auch beim französischen Hoster o2switch, wo sie vor dem Block von LiteSpeed Cache stehen müssen.

Weiterlesen

  • Seite Kompatibel mit Hostern und Caches

Quellen

  1. Apache HTTP Server: .htaccess files (externer Link, öffnet in neuem Tab)
  2. WordPress Advanced Administration: Apache HTTPD / .htaccess (externer Link, öffnet in neuem Tab)
  3. Apache HTTP Server: When not to use mod_rewrite (externer Link, öffnet in neuem Tab)

Alle Definitionen

WordPress-Sicherheit ohne Lärm

Eine E-Mail, wenn es wichtig ist: neu beobachtete Angriffe, Updates des Plugins und praktische Anleitungen. Kein Spam, Abmeldung mit einem Klick.

Starte kostenlos und wechsle zu Pro, wenn du so weit bist

Die kostenlose Version versteckt WordPress bereits und verschiebt die Anmeldeseite. Pro ergänzt Aliasse, Zwei-Faktor-Authentifizierung und Überwachung.