.htaccess Datei verstehen + 12 Beispiele
Einstellungen für Ihre Website bzw. Webserver
.htaccess auf einen Blick
Was ist die .htaccess Datei?
Die .htaccess Datei ist eine textbasierte Datei auf Webservern wie Apache, welche es berechtigten Nutzern ermöglicht, verzeichnisspezifische Konfigurationen wie etwa Weiterleitungen oder einen Passwortschutz einzurichten.
Die meisten CMS wie WordPress, Joomla und Typo3 stellen bereits eine .htaccess-Datei bereit, die grundlegende Regeln enthält, um die Website suchmaschinenfreundlich zu gestalten.
Achtung
Bevor Sie Ihre .htaccess-Datei bearbeiten, sollten Sie unbedingt ein Backup der aktuellen Datei erstellen. Speichern Sie dazu einfach den Inhalt in einer lokalen Textdatei ab.
Bereits ein kleiner Tippfehler kann dazu führen, dass Ihre Website nicht mehr erreichbar ist.
.htaccess Definition (nach Wikipedia)
„.htaccess (aus englisch hypertext access „Hypertext-Zugriff“) ist eine Konfigurationsdatei auf NCSA-kompatiblen Webservern wie Apache, in der verzeichnisbezogene Regeln aufgestellt werden können.“
Wo befindet sich die .htaccess?
Normalerweise befindet sich die .htaccess Datei im Hauptverzeichnis (/www/) der Website. Die Einstellungen der Datei wirken sich auf das aktuelle Verzeichnis und alle Unterverzeichnisse aus. Für den Zugriff benötigen Sie Administratorrechte auf dem Webspace oder einen FTP-Zugang.
.htaccess Datei erstellen
- Control PanelControl-Panel Unser Control Panel erleichtert Ihnen die Verwaltung Ihres Webhostings enorm. Statt sich mit komplexen technischen Befehlen oder Programmierkenntnissen auseinanderzusetzen, können Sie alle wichtigen Einstellungen einfach per Mausklick vornehmen.: Mit dem Dateimanager Modul können Sie eine neue .htaccess-Datei erstellen.
- SSH: Webserver mit SSH Zugängen ermöglichen eine Erstellung sowie das Bearbeiten der Datei direkt am Server.
- FTP: Bei Servern mit FTP Zugang muss die Datei jedoch lokal erstellt werden und anschließend hochgeladen werden. Eine lokale Erstellung ist mit allen gängigen Texteditoren möglich.
Der Beginn des Dateinamens mittels Punkt ist für Unix-Systeme üblich. Verzeichnisspezifische Konfigurationsdateien beginnen bei Unix stets mit einem Punkt. Durch den Punkt wird die .htaccess Datei als „versteckt“ gekennzeichnet. Server Administratoren sowie berechtigte Nutzer können mittels der .htacces Datei schnell und unkompliziert Einfluss auf die Konfiguration des Servers nehmen.
.htaccess im Modul Dateimanager des Control Panels bearbeiten
Wenn Sie sich in Ihr Hosting Control Panel einloggen, können Sie über das Modul Dateimanager mit einem Rechtsklick jede Datei bearbeiten.
.htaccess bearbeiten per FTP
Um die .htaccess-Datei per FTP zu bearbeiten, verbinden Sie sich mit einem FTP-Client (z. B. FileZilla) mit Ihrem Webserver, navigieren zum gewünschten Verzeichnis, laden die .htaccess-Datei herunter, bearbeiten sie lokal mit einem Texteditor und laden sie anschließend wieder hoch.
Anleitung: FTP Verbindung aufbauen
Filezilla Anleitung
FTP Verbindung herstellen mit Filezilla
.htaccess Datei in FileZilla nicht sichtbar?
Falls Ihre .htaccess-Datei in FileZilla nicht angezeigt wird, können Sie dies beheben, indem Sie im Menü auf „Server“ klicken und die Option „Auflistung versteckter Dateien erzwingen“ auswählen.
Anwendungsbeispiele für .htaccess:
Weiterleitungen
301-Weiterleitungen sind für SEO besonders wichtig, da sie Suchmaschinen zuverlässig auf die neue URL verweisen. Dadurch werden Rankingverluste durch nicht erreichbare Seiten vermieden.
RewriteEngine aktivieren
RewriteEngine On muss am Anfang der .htaccess-Datei aktiviert werden, damit URL-Umschreibungen und Weiterleitungen funktionieren. Ohne diese Aktivierung ignoriert der Server alle nachfolgenden Rewrite-Regeln.
Wichtig: Die Anweisung RewriteEngine On sollte nur einmal in der .htaccess-Datei aktiviert werden.
RewriteEngine on
301 Weiterleitung von alter URL (mit und ohne .html am Ende) zu neuer URL
Eine Weiterleitung von einer alten URL auf eine neue URL kann mit folgender Eingabe erreicht werden:
RewriteRule ^alteseite(/$|\.html) /neueseite.html [R=301,L]
301 Weiterleitung (Redirect) auf andere Website
Eine 301 Weiterleitung von Ihrer Domain auf eine andere Webseite kann mit folgender Zeile in der .htaccess Datei erstellt werden:
Redirect 301 / http://www.anderedomain.tld
Weiterleitung auf https (SSL)
Für eine Weiterleitung auf eine https gesicherte Adresse, mit einem eigenen Zertifikat, fügen Sie bitte folgende Einträge in Ihrer .htaccess-Datei ein.
RewriteCond %{REQUEST_SCHEME} ^http$
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]
Eine Weiterleitung auf https kann auch in Ihrem Control Panel bei bestehendem SSL Zertifikat im Modul Domains eingerichtet werden.
Domain mittels .htaccess in Unterordner weiterleiten
Haben Sie Ihre Homepage, CMS, Onlineshop oder andere Hosting Software in einen Unterordner auf Ihrem Hosting Paket installiert, können Sie mit folgendem Eintrag in der .htaccess in diesen Unterordner weiterleiten. Beim Aufruf der Domain wird dann automatisch in diesen Unterordner weitergeleitet:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domain.tld$ [NC]
RewriteCond %{REQUEST_URI} !UNTERVERZEICHNIS/
RewriteRule ^(.*)$ UNTERVERZEICHNIS/$1 [L]
In manchen Fällen, wenn es sich zum Beispiel um eine Subdomain handelt, funktioniert die Variante 1 nicht fehlerfrei. Hier sollte dann folgender Code verwendet werden:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain\.domain.tld$ [NC]
RewriteCond %{REQUEST_URI} !^/subdomain/
RewriteRule ^(.*)$ /subdomain/$1 [L]
Weiterleitung (Redirect 301) von „nicht www“ auf „www“
Diese Methode wird oft empfohlen um zu verhindern, dass Suchmaschinen (vor allem Google), den Inhalt Ihrer Webseite als Duplicate Content (gleicher Inhalt auf mehreren Seiten) wertet, da Ihre Seite im Normalfall mit und ohne www erreichbar ist. Dies kann zu einer schlechteren Platzierung bei den Suchmaschinen führen. Mit folgendem Code können Sie Ihre Domain von „nicht www“ (z.B.: http://ihredomain.tld) auf „www“ (z.B.: http://www.ihredomain.tld) weiterleiten
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.ihredomain\.tld$ [NC]
RewriteRule ^(.*)$ http://www.ihredomain.tld/$1 [L,R=301]
Man kann natürlich auch von „www“ auf „nicht www“ weiterleiten. Dazu verwenden Sie einfach folgenden Code:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.ihredomain\.tld$ [NC]
RewriteRule ^(.*)$ http://ihredomain.tld/$1 [L,R=301]
Weiterleitung bei Umzug auf eine neue Domain mit Weitergabe des Pfades
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?altedomain.tld$ [NC]
RewriteRule (.*) https://www.neuedomain.tld/$1 [R=301,L]
.htaccess Password: Passwortschutz für bestimmten Bereich einrichten
Um ein Verzeichnis oder Datein mittels .htaccess zu schützen müssen Sie folgenden Code in der .htaccess Datei hinzufügen.
AuthType Basic
AuthName "Bitte melden Sie sich mit Ihrem Benutzer an"
AuthUserFile /kompletter Pfad der Passwortdatei/.htpasswd
Require valid-user
Zusätzlich muss noch eine weitere Datei .htpasswd erstellt werden. Diese Datei dient zum Speichern der berechtigen Benutzername sowie deren Passwörter. Passworter dürfen in Unix-Systemen nur verschlüsselt eingetragen werden. Der Inhalt der .htpasswd Datei kann z.B. mit dem Tool htpasswd erzeugt werden.
Diese Datei können Sie sich jedoch auch in Ihrem Control Panel unter dem Modul Geschützte Verzeichnisse erstellen.
Beispiel der .htpasswd Datei:
User1:kWZTbvy#8Y
User2:KyQG7Uka$j
User3:rX7QWBSxa
Die .htaccess Datei muss sich in dem Verzeichnis befinden, welches durch das Passwort geschützt werden soll oder die Datei liegt, welche geschützt werden soll. Idealerweise sollte die .htpasswd Datei oberhalb des Rootverzeichnisses abgelegt werden.
IP Sperre:
Einzelne IP Adressen oder ganze IP Bereiche (IP Range) sperren mit .htaccess
Sie können durch folgende Einträge in der .htaccess Datei bestimmte IP Adressen oder auch ganze IP Adressbereiche sperren. Dies kann zum Beispiel nützlich sein, wenn durch eine bestimmte IP Adresse Angriffsversuche statt finden.
Sollen mehrere einzelne IP Adresse gesperrt werden, wird jede IP Adresse in eine eigene Zeile eingetragen. Wird die Seite von einer gesperrten IP Adresse aufgerufen erhält der Besucher den Fehlercode 403 (HTTP-Fehler 403 Forbidden).
order allow,deny
# Einzelne IP Adresse sperren:
deny from 192.168.5.200
# Kompletten IP Bereich von 192.168.5.1 - 192.168.5.255 sperren:
deny from 192.168.5.
# möglich ist auch den Class C IP Bereich von 192.168.5.1 - 192.168.5.255 zu sperren:
deny from 192.168.5.0/24
allow from all
Einzelne IP Adressen oder ganze IP Bereiche (IP Range) zulassen
Sie können durch folgende Einträge in der .htaccess Datei bestimmte IP Adressen oder auch ganze IP Adressbereiche zulassen. Dies kann zum Beispiel nützlich sein, wenn der Zugriff auf den Administratorbereich einer Webseite oder bestimmte Verzeichnisse einer Webseite, nur für eine gewisse IP Adresse oder mehrere IP Adressen erlaubt sein soll.
order allow,deny
# Alle anderen IP Adressen werden nicht zugelassen:
deny from all
# Einzelner IP Adresse Zugriff erlauben:
allow from 192.168.5.200
# Kompletten IP Bereich 192.168.5.1 - 192.168.5.255 Zugriff erlauben:
allow from 192.168.5.
Lösung für Fehlermeldung: Option FollowSymLinks not allowed here (Internal Server Error)
Eine sehr häufige Ursache für einen „Internal Server Error“ kann sein, dass Sie die Option „FollowSymLinks“ in Ihrer .htaccess Datei gesetzt haben. Zusätzlich zur Anzeige der Nachricht „Internal Server Error“ in Ihrem Browser wird auch im Error Log (dieses finden Sie im Control Panel Modul Entwicklung) der Fehler „Option FollowSymLinks not allowed here“ aufgezeichnet.
Um diesen Fehler zu beheben, müssen Sie die Option „FollowSymLinks“ in allen .htaccess Dateien Ihrer Webseite durch „SymLinksIfOwnerMatch“ ersetzen.
Der aktuelle Eintrag könnte z.B. so aussehen:
Options -Indexes +FollowSymLinks
Diesen müssen Sie wie folgt ändern:
Options -Indexes +SymLinksIfOwnerMatch
Auflistung der in dem Verzeichnis vorhandenen Daten erlauben
Standardmäßig ist die Auflistung von Verzeichnissen und Dateien auf unseren Servern deaktiviert. Das bedeutet, wenn sich keine index.html oder index.php Datei im Verzeichnis befindet, wird die Meldung „Forbidden“ vom Server ausgegeben. Sie können die Auflistung der Verzeichnisse oder Dateien aber mit Hilfe eines Eintrags in der .htaccess Datei erlauben:
Options +Indexes
Startseite mit der Option DirectoryIndex definieren
Beim Aufrufen Ihrer Domain (www.ihredomain.tld) ohne Verwendung von Dateinamen (www.ihredomain.tld/dateiname.html) wird als Startseite standardgemäß die „index.html“ Datei verwendet, sollte keine index.html Datei vorhanden sein folgt in der Reihenfolge die „index.php“ Datei.
Sie können aber auch über die .htaccess Datei eine benutzerdefinierte Startseite mit folgender Anweisung verwenden.
DirectoryIndex DATEINAME.html index.html index.php
Mit dieser Anweisung legen Sie die Datei „DATEINAME.html“ als Startseite fest, sollte diese nicht existieren wird als nächstes die Datei index.html verwendet.