Veröffentlicht am
Was die .htaccess ist - und wo sie liegt
Die .htaccess ist eine Textdatei mit Anweisungen für den Webserver. Sie liegt im Dokumentenstammverzeichnis deiner Domain, üblicherweise in httpdocs, und gilt für dieses Verzeichnis samt allem darunter. Änderungen wirken sofort - ein Neustart ist nicht nötig.
Der Name beginnt mit einem Punkt, deshalb behandeln viele Programme sie als versteckte Datei. Im Plesk-Dateimanager ist sie sichtbar, in FileZilla musst du versteckte Dateien gegebenenfalls erst einblenden. Existiert noch keine, legst du sie einfach neu an.
Vor jeder Änderung eine Kopie ziehen.
Ein Tippfehler in der .htaccess legt die gesamte Seite mit einem 500 Internal Server Error lahm - und zwar sofort und für alle. Lade die Datei vorher herunter oder kopiere sie im Dateimanager, dann ist der Zustand vorher in zehn Sekunden wiederhergestellt.
301 oder 302 - der Unterschied zählt
Jede Weiterleitung trägt einen Statuscode, der Suchmaschinen sagt, wie sie damit umgehen sollen:
| Code | Bedeutung | Wann |
|---|---|---|
| 301 | dauerhaft verschoben | Der Normalfall: Relaunch, neue Adressstruktur, Domainwechsel. Die Bewertung der alten Adresse geht auf die neue über. |
| 302 | vorübergehend | Nur für echte Übergangslösungen - Wartungsseite, zeitlich begrenzte Aktion. Die alte Adresse bleibt im Index. |
Der häufigste Fehler bei einem Relaunch ist eine 302 statt einer 301. Suchmaschinen behalten dann die alten Adressen im Index und übertragen die aufgebaute Bewertung nicht - die neue Seite startet praktisch bei null. Im Zweifel also immer R=301.
www und HTTPS vereinheitlichen
Eine Seite sollte unter genau einer Adresse erreichbar sein. Sind es vier - mit und ohne www, mit und ohne HTTPS -, verteilt sich die Bewertung auf mehrere Varianten derselben Seite.
Von www auf die Variante ohne www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Umgekehrt, auf die www-Variante:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Welche Variante du wählst, ist gleichgültig - Hauptsache, du entscheidest dich für eine und bleibst dabei. Trag sie anschließend auch im CMS als Seitenadresse ein, sonst arbeiten beide gegeneinander.
HTTPS besser in Plesk erzwingen.
Für die Umleitung von HTTP auf HTTPS gibt es in Plesk bei der Domain die Einstellung für eine dauerhafte Weiterleitung. Nutze sie statt einer eigenen Regel - und dann auch nur sie. Werden HTTPS gleichzeitig in Plesk, in der .htaccess und im CMS erzwungen, entsteht die klassische Weiterleitungsschleife, siehe SSL-Zertifikat einrichten.
Einzelne Seiten nach einem Relaunch umleiten
Ändert sich beim Relaunch die Adressstruktur, braucht jede alte Adresse ein Ziel. Für einzelne Seiten reicht die einfache Form:
Redirect 301 /alte-seite.html /neue-seite/
Redirect 301 /produkte/altes-produkt /produkte/neues-produkt/
Für ein ganzes Verzeichnis samt Unterseiten:
RedirectMatch 301 ^/blog/(.*)$ /magazin/$1
Und für einen Domainwechsel, bei dem die Pfade gleich bleiben:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^alte-domain\.de$ [NC]
RewriteRule ^(.*)$ https://neue-domain.de/$1 [R=301,L]
Leite nicht pauschal alles auf die Startseite um. Wer eine bestimmte Unterseite gesucht hat und stattdessen auf der Startseite landet, springt in aller Regel wieder ab - und Suchmaschinen werten solche Sammelumleitungen ähnlich wie eine Fehlerseite. Jede alte Adresse gehört auf ihre inhaltlich passende Entsprechung.
Weitere nützliche Regeln
Eigene Fehlerseiten:
ErrorDocument 404 /fehler/404.html
ErrorDocument 403 /fehler/403.html
Verzeichnislisting abschalten. Ohne Indexdatei zeigt der Server sonst den Inhalt eines Verzeichnisses an:
Options -Indexes
Einzelne Datei sperren. Nützlich für Sicherungen oder Konfigurationsdateien, die versehentlich im Webverzeichnis gelandet sind:
<Files "geheim.txt">
Require all denied
</Files>
Für einen echten Passwortschutz eines Verzeichnisses nimm besser den Verzeichnisschutz in Plesk - der legt die nötigen Dateien selbst an und verwaltet die Benutzer, ohne dass du Passwortdateien von Hand pflegst.
Typische Fehler
- 500 Internal Server Error direkt nach dem Speichern. Ein Syntaxfehler - meist eine fehlende Klammer, ein Tippfehler in einer Direktive oder eine Regel, die dieser Server nicht kennt. Spiel die Kopie zurück und geh die Änderung zeilenweise durch.
- Weiterleitungsschleife. Zwei Stellen leiten gegeneinander um, etwa Plesk auf HTTPS und die .htaccess zurück auf HTTP. Genau eine Stelle darf die Weiterleitung übernehmen.
- Regel greift nicht. Die Reihenfolge zählt: Anweisungen werden von oben nach unten abgearbeitet, und
[L]beendet die Verarbeitung. Steht deine Regel unterhalb eines Blocks, der bereits abschließt, wird sie nie erreicht. - WordPress-Regeln überschrieben. WordPress verwaltet einen eigenen Block zwischen
# BEGIN WordPressund# END WordPress. Eigene Regeln gehören oberhalb davon - innerhalb des Blocks werden sie beim nächsten Speichern der Permalinks entfernt. - Änderung wirkt scheinbar nicht. Browser merken sich 301-Weiterleitungen hartnäckig. Teste mit einem privaten Fenster oder einem anderen Browser, bevor du weiter an der Regel schraubst.
- Umlaute in der Datei. Speichere die .htaccess ohne Byte Order Mark. Manche Editoren setzen ihn automatisch, was zu schwer auffindbaren 500ern führt.
Häufige Fragen
Volle Kontrolle über die Auslieferung
Auf dem Webspace greifen deine eigenen .htaccess-Regeln - für Weiterleitungen, Fehlerseiten und Zugriffsschutz. Verwaltet wird alles über Plesk, ohne Kommandozeile.
Webspace-Pakete & Preise ansehen