.htaccess Guide: Versteckte Einstellungen, Weiterleitungen und Sicherheit

Die Datei .htaccess ist eine lokale Konfigurationsdatei, mit der sich bestimmte Einstellungen Ihrer Website direkt im jeweiligen Verzeichnis steuern lassen. Sie wird häufig in Webhosting-Umgebungen mit cPanel verwendet, um Weiterleitungen einzurichten, HTTPS zu erzwingen, Verzeichnisauflistungen zu deaktivieren, Zugriffe einzuschränken oder bestimmte Sicherheitsregeln zu setzen.

Für viele Website-Betreiber ist die .htaccess eine der wichtigsten Dateien im Webhosting, auch wenn sie auf den ersten Blick unscheinbar wirkt. Der Dateiname beginnt mit einem Punkt, weshalb sie in vielen Dateimanagern standardmässig als versteckte Datei behandelt wird. Gerade bei Content-Management-Systemen wie WordPress, Joomla oder anderen PHP-Anwendungen spielt sie eine wichtige Rolle, zum Beispiel für suchmaschinenfreundliche URLs, Weiterleitungen und Zugriffsschutz.

Wichtiger Sicherheitshinweis:
Eine fehlerhafte .htaccess-Datei kann dazu führen, dass Ihre Website nicht mehr erreichbar ist und stattdessen ein Fehler wie 500 Internal Server Error angezeigt wird. Erstellen Sie daher vor jeder Änderung eine Sicherungskopie der bestehenden Datei. Ändern Sie immer nur wenige Zeilen auf einmal und testen Sie Ihre Website anschliessend sofort.

Was ist die .htaccess-Datei genau?

Die .htaccess ist eine Konfigurationsdatei, die Anweisungen für den Webserver enthält. Diese Anweisungen gelten normalerweise für das Verzeichnis, in dem sich die Datei befindet, sowie für darunterliegende Unterverzeichnisse. Liegt die Datei beispielsweise im Ordner public_html, kann sie das Verhalten der gesamten Website beeinflussen.

Typische Aufgaben einer .htaccess-Datei sind:

  • Weiterleitungen von alten auf neue URLs
  • Erzwingen von HTTPS-Verbindungen
  • Umleitung von www auf die Domain ohne www oder umgekehrt
  • Schutz vor Verzeichnisauflistungen
  • Sperren einzelner IP-Adressen
  • Schutz bestimmter Dateien vor direktem Zugriff
  • Definition eigener Fehlerseiten
  • technische Regeln für Content-Management-Systeme wie WordPress

Die .htaccess ist leistungsstark, sollte aber mit Vorsicht bearbeitet werden. Nicht jede mögliche Apache-Anweisung ist in jeder Hosting-Umgebung erlaubt. Wenn eine Regel nicht unterstützt wird oder fehlerhaft ist, kann dies zu einer Fehlermeldung führen.

Wo befindet sich die .htaccess-Datei in cPanel?

In den meisten Fällen befindet sich die wichtigste .htaccess-Datei Ihrer Website im Hauptverzeichnis der Website. Bei einer Hauptdomain ist dies häufig der Ordner public_html. Bei Zusatzdomains, Subdomains oder separat installierten Anwendungen kann die Datei auch in einem anderen Verzeichnis liegen.

So finden Sie die Datei im cPanel-Dateimanager:

  1. Melden Sie sich in Ihrem cPanel-Konto an.
  2. Öffnen Sie den Bereich Dateimanager.
  3. Navigieren Sie zum Ordner Ihrer Website, häufig public_html.
  4. Klicken Sie oben rechts auf Einstellungen.
  5. Aktivieren Sie die Option Versteckte Dateien anzeigen (dotfiles).
  6. Klicken Sie auf Save beziehungsweise Speichern.
  7. Die Datei .htaccess sollte nun sichtbar sein, sofern sie bereits existiert.

Falls keine .htaccess-Datei vorhanden ist, kann sie bei Bedarf neu erstellt werden. Achten Sie dabei exakt auf den Dateinamen: .htaccess. Es darf keine Dateiendung wie .txt angehängt werden.

Vor Änderungen immer eine Sicherung erstellen

Bevor Sie die Datei bearbeiten, sollten Sie eine Sicherheitskopie erstellen. Das ist besonders wichtig, weil bereits ein kleiner Tippfehler die Website blockieren kann.

  1. Markieren Sie im cPanel-Dateimanager die Datei .htaccess.
  2. Klicken Sie auf Kopieren oder laden Sie die Datei auf Ihren Computer herunter.
  3. Speichern Sie die Kopie beispielsweise als .htaccess-backup oder htaccess-sicherung.txt.
  4. Bearbeiten Sie erst danach die aktive .htaccess-Datei.

Wenn nach einer Änderung ein Fehler auftritt, können Sie die letzte Änderung rückgängig machen oder die Sicherung wiederherstellen.

Praktische .htaccess-Beispiele

Die folgenden Beispiele zeigen häufig verwendete Regeln. Kopieren Sie Code nicht blind in Ihre Website, sondern prüfen Sie immer, ob bereits ähnliche Regeln vorhanden sind. Besonders bei WordPress und anderen CMS-Systemen ist die Reihenfolge der Regeln wichtig.

1. HTTPS erzwingen

Diese Regel leitet Besucher automatisch von http:// auf https:// weiter. Voraussetzung ist, dass für die Domain ein gültiges SSL-Zertifikat aktiv ist.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Eine permanente Weiterleitung mit R=301 signalisiert Browsern und Suchmaschinen, dass die HTTPS-Version dauerhaft verwendet werden soll. Nach dem Einrichten sollten Sie mehrere Unterseiten Ihrer Website testen.

2. Von www auf ohne www weiterleiten

Wenn Ihre Website einheitlich ohne www erreichbar sein soll, können Sie folgende Regel verwenden. Ersetzen Sie example.ch durch Ihre eigene Domain.

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

Eine einheitliche Domain-Variante ist aus SEO-Sicht sinnvoll, weil dadurch doppelte Inhalte unter verschiedenen Domainvarianten reduziert werden können.

3. Von ohne www auf www weiterleiten

Wenn Ihre Website stattdessen immer mit www aufgerufen werden soll, verwenden Sie diese Variante. Ersetzen Sie auch hier example.ch durch Ihre eigene Domain.

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

Wichtig ist, dass Sie sich für eine Variante entscheiden. Nutzen Sie nicht gleichzeitig widersprüchliche Weiterleitungen für www und ohne www.

4. Einzelne Seite dauerhaft weiterleiten

Wenn sich die URL einer Seite geändert hat, können Sie alte Adressen dauerhaft auf neue Adressen weiterleiten. Das ist besonders wichtig, damit Besucher und Suchmaschinen nicht auf einer 404-Fehlerseite landen.

Redirect 301 /alte-seite.html https://example.ch/neue-seite.html

Diese Regel eignet sich für einfache Weiterleitungen einzelner Seiten. Bei komplexeren URL-Strukturen sind RewriteRule-Regeln oft flexibler.

5. Verzeichnisauflistung deaktivieren

Wenn in einem Verzeichnis keine Indexdatei wie index.php oder index.html vorhanden ist, kann der Server unter Umständen eine Liste der enthaltenen Dateien anzeigen. Das ist aus Sicherheits- und Datenschutzgründen meistens unerwünscht.

Options -Indexes

Mit dieser Regel verhindern Sie, dass Besucher den Inhalt eines Verzeichnisses als Dateiliste sehen können.

6. Einzelne IP-Adresse sperren

Mit Apache 2.4 wird der Zugriffsschutz über die Direktive Require gesteuert. Das folgende Beispiel sperrt eine bestimmte IP-Adresse. Ersetzen Sie 203.0.113.10 durch die betreffende IP-Adresse.

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

Das Sperren einzelner IP-Adressen kann bei auffälligen Zugriffen hilfreich sein. Es ersetzt jedoch keine umfassende Sicherheitslösung, da Angreifer IP-Adressen wechseln oder über Netzwerke mit wechselnden Adressen zugreifen können.

7. Zugriff auf sensible Dateien blockieren

Bestimmte Dateien sollten niemals direkt über den Browser abrufbar sein. Dazu können beispielsweise Sicherungsdateien, Konfigurationsdateien oder Entwicklungsdateien gehören.

<FilesMatch "^(\.env|composer\.json|composer\.lock|package\.json)$">
    Require all denied
</FilesMatch>

Diese Regel blockiert den direkten Zugriff auf einige typische technische Dateien. Ob diese Dateien in Ihrem Webverzeichnis vorhanden sein sollten, hängt von Ihrer Anwendung ab. Im Zweifel sollten sensible Konfigurationsdateien gar nicht erst im öffentlich erreichbaren Webverzeichnis liegen.

8. Eigene Fehlerseite für 404-Fehler definieren

Eine benutzerdefinierte Fehlerseite kann Besuchern helfen, wenn eine Seite nicht gefunden wird. Statt einer technischen Standardmeldung können Sie eine hilfreiche Seite mit Navigation, Suche oder Kontaktmöglichkeit anzeigen.

ErrorDocument 404 /404.html

Die Datei 404.html muss im angegebenen Pfad existieren. Alternativ kann auch eine PHP-Datei verwendet werden, wenn Ihre Website dies vorsieht.

Wichtige Hinweise für WordPress-Websites

WordPress verwendet die .htaccess-Datei häufig für sogenannte Permalinks, also suchmaschinenfreundliche URLs. Der WordPress-Block sieht typischerweise ähnlich aus wie dieses Beispiel:

# 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

Bearbeiten Sie den WordPress-Block nur, wenn Sie genau wissen, was Sie tun. Viele Regeln sollten oberhalb oder unterhalb dieses Blocks eingefügt werden. Wird der WordPress-Block beschädigt, können Unterseiten Ihrer Website nicht mehr korrekt erreichbar sein.

Wenn Sie nach einer Änderung an WordPress-Permalinks Fehler bemerken, können Sie im WordPress-Adminbereich unter Einstellungen > Permalinks die Permalink-Struktur erneut speichern. Dadurch erstellt WordPress die benötigten Regeln häufig neu.

Häufige Fehler bei .htaccess-Anpassungen

Viele Probleme mit der .htaccess entstehen nicht durch komplexe technische Ursachen, sondern durch kleine Syntaxfehler oder widersprüchliche Regeln. Achten Sie besonders auf folgende Punkte:

  • Doppelte RewriteEngine-Regeln: Mehrere RewriteEngine On-Zeilen sind meistens nicht kritisch, können aber die Übersicht erschweren.
  • Endlose Weiterleitungsschleifen: Diese entstehen, wenn eine Weiterleitung wieder auf sich selbst oder auf eine widersprüchliche Regel trifft.
  • Falsche Domainnamen: Platzhalter wie example.ch müssen immer durch Ihre echte Domain ersetzt werden.
  • Veraltete Apache-Syntax: Ältere Beispiele mit Order Allow,Deny, Deny from und Allow from stammen aus Apache 2.2 und sind in modernen Apache-2.4-Umgebungen nicht mehr die empfohlene Syntax.
  • Regeln an falscher Stelle: Bei CMS-Systemen kann die Reihenfolge der Regeln entscheidend sein.
  • Fehlende SSL-Voraussetzung: HTTPS-Weiterleitungen funktionieren nur korrekt, wenn für die Domain ein gültiges SSL-Zertifikat aktiv ist.

Was tun bei einem 500 Internal Server Error?

Wenn Ihre Website nach einer Änderung an der .htaccess nicht mehr erreichbar ist, gehen Sie ruhig und systematisch vor:

  1. Öffnen Sie den cPanel-Dateimanager.
  2. Navigieren Sie zum betroffenen Website-Verzeichnis.
  3. Benennen Sie die Datei .htaccess testweise um, zum Beispiel in .htaccess-defekt.
  4. Rufen Sie Ihre Website erneut im Browser auf.
  5. Wenn die Website wieder erreichbar ist, liegt der Fehler sehr wahrscheinlich in der .htaccess.
  6. Vergleichen Sie die Datei mit Ihrer Sicherungskopie oder entfernen Sie die zuletzt eingefügte Regel.

Bei WordPress kann es anschliessend notwendig sein, die Permalinks im Adminbereich neu zu speichern, damit WordPress wieder eine korrekte .htaccess erzeugt.

Best Practices für eine saubere .htaccess-Datei

  • Erstellen Sie vor jeder Änderung eine Sicherungskopie.
  • Fügen Sie neue Regeln Schritt für Schritt ein und testen Sie danach Ihre Website.
  • Kommentieren Sie eigene Regeln mit #, damit später nachvollziehbar ist, wofür sie gedacht sind.
  • Vermeiden Sie doppelte oder widersprüchliche Weiterleitungen.
  • Nutzen Sie permanente 301-Weiterleitungen nur, wenn die Änderung dauerhaft gelten soll.
  • Bewahren Sie sensible Dateien möglichst ausserhalb des öffentlich erreichbaren Webverzeichnisses auf.
  • Prüfen Sie nach Änderungen nicht nur die Startseite, sondern auch Unterseiten, Formulare, Login-Bereiche und Mediendateien.

FAQ zur .htaccess-Datei

Warum sehe ich die .htaccess-Datei im cPanel nicht?

Dateien, die mit einem Punkt beginnen, werden als versteckte Dateien behandelt. Aktivieren Sie im cPanel-Dateimanager unter Einstellungen die Option Versteckte Dateien anzeigen (dotfiles).

Kann ich die .htaccess-Datei löschen?

Das sollten Sie nur tun, wenn Sie wissen, welche Funktion die Datei auf Ihrer Website erfüllt. Bei WordPress und vielen anderen Anwendungen kann das Löschen dazu führen, dass Unterseiten, Weiterleitungen oder Sicherheitsregeln nicht mehr funktionieren. Erstellen Sie vorher immer eine Sicherung.

Warum verursacht eine kleine Änderung sofort einen Fehler?

Die .htaccess wird vom Webserver direkt ausgewertet. Bereits eine ungültige Anweisung, ein falsches Zeichen oder eine nicht unterstützte Direktive kann dazu führen, dass der Server die Anfrage mit einem Fehler abbricht.

Ist .htaccess ein Ersatz für ein Sicherheits-Plugin oder eine Firewall?

Nein. Die .htaccess kann bestimmte Schutzmassnahmen ergänzen, ersetzt aber keine vollständige Sicherheitsstrategie. Updates, sichere Passwörter, aktuelle Anwendungen, Backups und geeignete Schutzmechanismen bleiben weiterhin wichtig.

Sollte ich Weiterleitungen über .htaccess oder über mein CMS einrichten?

Das hängt vom Anwendungsfall ab. Einzelne einfache Weiterleitungen können direkt über die .htaccess eingerichtet werden. Bei vielen Weiterleitungen oder redaktioneller Pflege ist ein CMS-Plugin oft übersichtlicher. Technische Weiterleitungen wie HTTPS oder www-Weiterleitungen sind in der .htaccess häufig sinnvoll.

Zusammenfassung:
Die .htaccess-Datei ist ein leistungsstarkes Werkzeug zur Steuerung Ihrer Website. Sie eignet sich für Weiterleitungen, HTTPS-Regeln, Zugriffsschutz und weitere technische Einstellungen. Gleichzeitig sollte sie mit Vorsicht bearbeitet werden, da fehlerhafte Regeln Ihre Website sofort beeinträchtigen können. Arbeiten Sie deshalb immer mit Sicherungskopien und testen Sie Änderungen sorgfältig.

Ihre Website zeigt nach einer Änderung einen Fehler oder Sie sind unsicher, welche Regel korrekt ist?
Entfernen Sie zunächst die letzte Änderung oder stellen Sie Ihre Sicherungskopie wieder her. Bei Fragen steht Ihnen der CURIAWEB-Support gerne zur Seite.

War diese Antwort hilfreich? 1 Benutzer fanden dies hilfreich (1 Stimmen)