Die .htaccess ist eine Textdatei für Apache- und LiteSpeed-Webserver. Sie liegt meist im Hauptordner deiner Website und legt fest, was bei Anfragen passiert: Weiterleitungen, HTTPS-Zwang, Passwortschutz, Zugriffsverbote, Cache-Zeiten. Weil der Name mit einem Punkt beginnt, ist sie versteckt; in FileZilla machst du sie mit Server → Auflistung versteckter Dateien erzwingen sichtbar. Fertige Regeln baut der .htaccess-Generator.
Was die .htaccess macht
Normalerweise steht die Konfiguration eines Webservers in zentralen Dateien, auf die du bei Webhosting keinen Zugriff hast. Die .htaccess ist der Ausweg: Apache liest sie bei jeder Anfrage im jeweiligen Ordner und wendet ihre Regeln auf diesen Ordner und alle Unterordner an. Typische Aufgaben:
- Weiterleitungen alter URLs auf neue (301), Umzug auf eine neue Domain: .htaccess-Weiterleitung
- HTTPS erzwingen und www/ohne www vereinheitlichen
- Passwortschutz für einen Ordner zusammen mit einer .htpasswd-Datei: .htpasswd-Generator
- Zugriff sperren auf Ordner, Dateitypen oder IP-Adressen
- „Schöne“ URLs, etwa bei WordPress (
/kontakt/statt/?page_id=7) - Caching und Komprimierung für schnellere Ladezeiten
- Eigene Fehlerseiten für 404 und 500
Wo liegt die .htaccess?
Im Document Root deiner Domain, also dem Ordner, in dem auch index.php oder index.html liegt. Je nach Hoster heißt er /html/, /htdocs/, /public_html/, /httpdocs/ oder trägt den Domainnamen. Weitere .htaccess-Dateien in Unterordnern gelten nur dort und ergänzen die übergeordnete.

- In FileZilla mit dem Server verbinden (so geht’s per SFTP).
- Im Menü Server den Haken bei Auflistung versteckter Dateien erzwingen setzen. Ausführlich: Versteckte Dateien in FileZilla anzeigen.
- In den Document Root wechseln. Die .htaccess erscheint jetzt in der Liste.
- Rechtsklick → Ansehen/Bearbeiten öffnet sie im Editor. Nach dem Speichern fragt FileZilla, ob die geänderte Datei hochgeladen werden soll.
Siehst du trotzdem keine .htaccess, gibt es schlicht noch keine. Du kannst sie anlegen: Rechtsklick → Neue Datei erstellen, Name .htaccess.
Funktioniert die .htaccess bei meinem Hoster?
| Webserver | .htaccess | Typisch bei |
|---|---|---|
| Apache | ja, wenn AllowOverride erlaubt ist |
Strato, IONOS, All-Inkl, 1blu, Host Europe, viele Shared-Hoster |
| LiteSpeed | ja, Apache-kompatibel | Hostinger, viele cPanel-Hoster |
| nginx | nein, wird ignoriert | viele Managed-WordPress-Hoster, eigene VPS |
Bei nginx-Hostern stellst du Weiterleitungen im Kundenbereich ein oder bittest den Support darum. Ob dein Server Apache, LiteSpeed oder nginx ist, zeigt oft die Hilfe des Hosters oder der HTTP-Header Server in den Entwicklertools deines Browsers (Netzwerk-Tab).
Die wichtigsten Regeln zum Kopieren
HTTPS erzwingen
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
www entfernen
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
Ordnerinhalt nicht auflisten
Options -Indexes
Bestimmte Dateien sperren (Apache 2.4)
<FilesMatch "\.(env|ini|log|sql|bak)$">
Require all denied
</FilesMatch>
Eigene 404-Seite
ErrorDocument 404 /404.html
Alles davon und mehr (Caching, Komprimierung, Hotlink-Schutz) setzt der .htaccess-Generator per Klick zusammen.
Die Standard-.htaccess von WordPress
WordPress schreibt beim Speichern der Permalinks diesen Block. Wenn nach einem Plugin-Fehler alle Unterseiten 404 liefern, hilft es oft, die Datei auf genau diesen Inhalt zurückzusetzen:
# 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
Eigene Regeln gehören oberhalb von # BEGIN WordPress. Was zwischen BEGIN und END steht, überschreibt WordPress beim nächsten Speichern der Permalinks. Cache- und Sicherheits-Plugins fügen eigene, ebenso markierte Blöcke hinzu.
Wenn nach einer Änderung nichts mehr geht
- 500 Internal Server Error heißt fast immer: Tippfehler oder ein Befehl, den der Server nicht kennt. Lade die vorherige Version wieder hoch, deshalb vor jeder Änderung eine Kopie anlegen (z. B.
.htaccess.bak). - Weiterleitungsschleife („zu oft umgeleitet“): Zwei Regeln leiten sich gegenseitig weiter, häufig HTTPS-Regel plus gleiche Einstellung beim Hoster oder in WordPress. Eine davon entfernen.
- Änderung wirkt nicht: Browser-Cache leeren oder im privaten Fenster testen; 301-Weiterleitungen merkt sich der Browser dauerhaft. Bei LiteSpeed-Hostern zusätzlich den Server-Cache leeren.
- Datei wird nicht gespeichert: FileZilla meldet 550 Permission denied. Die Rechte der .htaccess sollten
644sein: chmod-Rechner.
Häufige Fragen
Frage antippen, um die Antwort zu öffnen.
Warum beginnt der Dateiname mit einem Punkt?
Auf Unix-Systemen gelten Dateien mit Punkt am Anfang als versteckt. So taucht die Konfiguration nicht in Verzeichnislisten auf. Windows tut sich mit solchen Namen schwer; bearbeite die Datei deshalb am besten direkt über FileZilla.
Ist die .htaccess öffentlich lesbar?
Nein. Apache liefert Dateien, die mit .ht beginnen, standardmäßig nicht aus. Ein Aufruf von /.htaccess im Browser endet mit 403.
Macht die .htaccess meine Seite langsamer?
Minimal, weil Apache sie bei jeder Anfrage liest. Bei normalen Websites ist das nicht messbar. Wer einen eigenen Server hat, kann die Regeln in die Serverkonfiguration verschieben und AllowOverride None setzen.
Brauche ich eine .htaccess für eine statische HTML-Seite?
Nicht zwingend. Sinnvoll ist sie trotzdem für HTTPS-Zwang, eine einheitliche Domain (mit oder ohne www) und eine eigene 404-Seite.