Die WordPress .htaccess: Beispiele und Anleitung

Die .htaccess steuert Permalinks, Weiterleitungen und den Zugriff auf sensible Dateien. Ein falsches Zeichen legt die ganze Website lahm. Diese Anleitung zeigt Speicherort, Aufbau und die Regeln, die sich in der Praxis bewähren.

Was die .htaccess-Datei macht

Die .htaccess ist eine Konfigurationsdatei für den Apache-Webserver. Liegt sie in einem Verzeichnis, gelten ihre Regeln für dieses Verzeichnis und alle darunter. Der Server liest sie bei jeder Anfrage, noch bevor WordPress überhaupt startet.

WordPress braucht sie vor allem für die Permalinks. Erst durch ihre Regeln werden aus technischen Adressen wie index.php?p=123 sprechende Adressen wie /mein-beitrag/. Darüber hinaus lassen sich Weiterleitungen einrichten, einzelne Dateien sperren und Zugriffe auf Verzeichnisebene einschränken.

Ein Hinweis vorweg: Diese Anleitung gilt für Apache, die häufigste Umgebung bei klassischem Webhosting. Läuft Ihre Seite auf Nginx, gibt es keine .htaccess. Vergleichbare Regeln stehen dort in der Serverkonfiguration und müssen vom Hoster gesetzt werden.

Wo die .htaccess liegt

Im Stammverzeichnis Ihrer Installation, also dort, wo auch die wp-config.php und die Ordner wp-admin, wp-content und wp-includes liegen. Je nach Anbieter heißt dieser Ordner public_html, httpdocs oder www.

Weil Dateinamen mit einem Punkt am Anfang unter Unix als versteckt gelten, zeigen viele FTP-Programme sie nicht von selbst an. Aktivieren Sie in Ihrem Programm die Option für versteckte Dateien.

Existiert noch keine .htaccess, legt WordPress sie an, sobald Sie unter Einstellungen > Permalinks einmal speichern. Voraussetzung ist, dass der Server in das Verzeichnis schreiben darf.

public_html/
  ├─ wp-admin/
  ├─ wp-content/
  ├─ wp-includes/
  ├─ wp-config.php
  ├─ index.php
  └─ .htaccess   ← liegt hier

Die Standard-.htaccess von WordPress

Eine frische Installation mit aktivierten Permalinks enthält einen Block, den WordPress selbst verwaltet. Er reicht alle Anfragen, die keiner echten Datei entsprechen, an die index.php weiter:

# BEGIN WordPress
<IfModule mod_rewrite.c>
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]
</IfModule>
# END WordPress

Alles zwischen den beiden Kommentarzeilen gehört WordPress. Eigene Regeln setzen Sie davor oder dahinter, niemals dazwischen. Sonst überschreibt WordPress sie, sobald die Permalink-Einstellungen erneut gespeichert werden.

Wie die Permalink-Struktur selbst funktioniert, steht unter WordPress Permalinks einstellen.

Sicher bearbeiten in vier Schritten

1. Sichern

Datei herunterladen oder auf dem Server umbenennen. Ohne Kopie fangen Sie nicht an.

2. Bearbeiten

Nur mit einem reinen Texteditor. Word und Textverarbeitungen fügen unsichtbare Zeichen ein.

3. Hochladen

Per FTP oder über den Dateimanager des Hostings, immer im Textmodus.

4. Testen

Startseite, eine Unterseite und das Backend aufrufen. Bei einem Fehler sofort zurücksichern.

Testen Sie nach jeder einzelnen Änderung, nicht erst am Schluss. Wenn Sie fünf Regeln auf einmal einfügen und die Seite danach einen Serverfehler zeigt, suchen Sie länger als nötig.

Praxisbeispiele für die .htaccess

Weiterleitung einrichten

Eine einzelne Adresse dauerhaft auf eine neue umleiten:

Redirect 301 /alte-seite/ https://ihre-domain.de/neue-seite/

Bei vielen Weiterleitungen wird die Datei schnell unübersichtlich. Ein Redirect-Plugin verwaltet sie komfortabler und erlaubt Muster mit Platzhaltern.

Auf HTTPS umleiten

Wenn Ihre Seite noch über http erreichbar ist, gehört eine Umleitung auf die verschlüsselte Variante eingerichtet:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Viele Hoster bieten dafür inzwischen einen Schalter im Kundenmenü an. Wenn es den gibt, nutzen Sie ihn statt der eigenen Regel.

Auf eine Variante mit oder ohne www festlegen

Ihre Seite sollte unter genau einer Adresse erreichbar sein. Diese Regel leitet auf die Variante ohne www:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

Zugriffe einschränken

wp-config.php sperren

Die Datei enthält die Datenbankzugangsdaten und hat im Browser nichts verloren:

<Files wp-config.php>
Require all denied
</Files>

Auf älteren Servern mit Apache 2.2 lautet die Syntax stattdessen Order allow,deny gefolgt von Deny from all. Welche Version läuft, sagt Ihnen der Hoster.

Die .htaccess selbst schützen

<Files .htaccess>
Require all denied
</Files>

Verzeichnislisten abschalten

Ohne diese Zeile zeigen manche Server den Inhalt von Ordnern an, in denen keine index-Datei liegt:

Options -Indexes

Einzelne IP-Adressen sperren

Wenn eine bestimmte Adresse dauerhaft stört:

<RequireAll>
Require all granted
Require not ip 123.123.123.123
</RequireAll>

wp-admin auf feste IP-Adressen beschränken

Legen Sie dazu eine eigene .htaccess im Ordner wp-admin an, nicht im Stammverzeichnis:

Require ip 123.123.123.123

Diese Variante ist nur bei fester IP-Adresse praktikabel. Bei wechselnder Adresse sperren Sie sich selbst aus. In dem Fall sind ein starkes Passwort, ein zweiter Faktor und ein Login-Schutz-Plugin die bessere Wahl, siehe den Vergleich der WordPress Sicherheits-Plugins.

Sperren Sie wp-admin nur dann per IP, wenn Sie eine feste Adresse haben und einen zweiten Weg auf den Server kennen. Sonst kommen Sie im Zweifel nur noch per FTP an Ihre Website.

Wenn die Seite nicht mehr lädt

Der typische Fall ist ein Internal Server Error, also die Fehlermeldung 500. Schon eine falsch geschriebene Direktive genügt.

  1. Backup zurückspielen. Der schnellste Weg zurück in den funktionierenden Zustand.
  2. Kein Backup? Benennen Sie die Datei per FTP in htaccess-alt um. Die Seite läuft dann ohne Regeln, Unterseiten zeigen aber 404.
  3. Permalinks neu speichern. Öffnen Sie Einstellungen, Permalinks und klicken Sie auf Speichern. WordPress schreibt seinen Block neu.
  4. Fehlerprotokoll lesen. Im Hosting-Panel steht meist die Zeilennummer, an der es hakt.

Fügen Sie eigene Regeln danach einzeln wieder ein und prüfen Sie nach jeder.

Was nicht in die .htaccess gehört

Die Datei kann viel, ist aber selten die beste Stelle dafür.

  • Caching-Regeln setzt ein Caching-Plugin zuverlässiger und passend zu seiner eigenen Logik.
  • Komprimierung aktivieren viele Hoster bereits serverseitig. Doppelt gesetzt kann es sich gegenseitig aufheben.
  • Umfangreiche Weiterleitungslisten gehören in ein Redirect-Plugin, das eine Oberfläche und Protokolle mitbringt.
  • Kopierte Regelblöcke aus dem Netz ohne zu verstehen, was sie tun. Genau daraus entstehen die Serverfehler, die schwer zu finden sind.

Ein weiterer Punkt: Jede Regel wird bei jeder Anfrage ausgewertet. Eine aufgeblähte Datei kostet Rechenzeit, wenn auch wenig. Halten Sie sie schlank.

Häufige Fragen zur .htaccess

In der Regel legt WordPress sie selbst an, sobald Sie unter Einstellungen, Permalinks einmal speichern. Fehlt sie trotzdem, erstellen Sie lokal eine leere Textdatei, benennen sie in .htaccess um, fügen den WordPress-Standardblock ein und laden sie ins Stammverzeichnis.

Dateinamen, die mit einem Punkt beginnen, gelten unter Unix als versteckt. Aktivieren Sie in Ihrem FTP-Programm die Option zum Anzeigen versteckter Dateien. Im Dateimanager des Hostings gibt es meist einen entsprechenden Schalter.

Ja. Ein einzelnes falsches Zeichen führt zu einem Serverfehler 500, und zwar für die gesamte Website inklusive Backend. Deshalb gehört vor jede Änderung eine Sicherungskopie. Im Notfall benennen Sie die Datei per FTP um, dann läuft die Seite wieder ohne Regeln.

Außerhalb des Blocks zwischen BEGIN WordPress und END WordPress, am besten davor. Alles innerhalb dieses Blocks überschreibt WordPress, sobald die Permalink-Einstellungen erneut gespeichert werden.

Dann gibt es keine .htaccess. Die entsprechenden Regeln stehen in der Serverkonfiguration und lassen sich meist nicht selbst bearbeiten. Wenden Sie sich an Ihren Hoster und beschreiben Sie, was erreicht werden soll, statt eine Apache-Regel zu übermitteln.

Weiterlesen

Überblick

Grundlagen und Checkliste für eine sichere Website.

WordPress Sicherheit

Adressen

Wofür WordPress die Rewrite-Regeln überhaupt braucht.

WordPress Permalinks einstellen

Erweiterungen

Wenn ein Plugin die Regeln übernehmen soll.

WordPress Sicherheits-Plugins

Netzwerk

Im Multisite-Betrieb sieht der WordPress-Block anders aus.

WordPress Multisite einrichten

Serverfehler nach einer Änderung?

Wir holen Ihre Website zurück, räumen die .htaccess auf und setzen nur die Regeln, die Ihre Installation wirklich braucht.