htaccess

Gute Überschriften gestalten

« Zurück zum Glossar

Was ist eine .htaccess Datei?

Eine .htaccess Datei (hypertext access) ist eine Konfigurationsdatei für NCSA-kompatible Webserver (z.B. Apache HTTP Server und Apache Software Foundation). Mithilfe der .htaccess Datei können von autorisierten Benutzern Server Einstellungen vorgenommen werden, die das Verzeichnis, in dem sich die Datei befindet, sowie alle Unterverzeichnisse betreffen. So kann über die .htaccess zum Beispiel festgelegt werden, welche Benutzer auf bestimmte Dateien zugreifen dürfen. Auch das Einrichten automatischer Weiterleitungen – beispielsweise im Zuge eines Relaunches oder zur Vermeidung von Duplicate Content – erfolgt über die .htaccess. Da die Datei bei jedem Seitenzugriff gescannt wird, treten Änderungen der .htaccess sofort in Kraft, ohne einen Neustart zu erfordern.

Die .htaccess Datei befindet sich in der Regel im Root-Verzeichnis einer Webseite.

Eine .htaccess Datei erstellen – so funktioniert’s

Bei der .htaccess Datei handelt es sich um eine reine Textdatei. Somit kann sie mit einem normalen Texteditor erstellt werden. Unter Microsoft Windows erkennen Sie den Texteditor an diesem Symbol:

Texteditor Windows

Nachdem Sie die entsprechenden Einstellungen eingetragen haben, speichern Sie die Datei unter dem Namen „.htaccess“. Vergessen Sie den vorangestellten Punkt beim Speichern des Dateinamens nicht!

Dass der Dateiname mit einem Punkt beginnt, stammt daher, dass ein vorangestellter Punkt bei Unix-Systemen verzeichnisspezifische Konfigurationsdateien kennzeichnet. Da Konfigurationsdateien bei unsachgemäßer Verwendung Fehler verursachen können, werden sie mit dem vorangestellten Punkt als „versteckt“ gekennzeichnet. Dadurch soll vermieden werden, dass Laien zu leichten Zugriff auf die Datei erhalten und darin „rumpfuschen“. So kommt es auch bei der .htaccess Datei häufig vor, dass diese im Verzeichnis einer Webseite nicht angezeigt wird. Mit den meisten FTP-Programmen wie Filezilla lässt sich jedoch das Anzeigen versteckter Dateien über folgenden Menüpunkt erzwingen:

htaccess versteckte datei FTP

 

Wichtig: Da Windows Systeme den Punkt anders interpretieren als Linux, sollte beim Speichern der Datei unter Windows als Dateityp unbedingt „Alle Dateien“ statt dem typischen „.txt“ ausgewählt werden:

htaccess alle dateien speichern

Haben Sie die .htaccess Datei korrekt gespeichert, sollte sie als Windows-Icon ein leeres, weißes Blatt enthalten (links im Bild). Enthält das Symbol Linien, ist die Datei falsch gespeichert worden (rechts im Bild):

 

Anschließend können Sie die .htaccess Datei einfach in das Root-Verzeichnis Ihrer Webseite ablegen (z.B. mithilfe von Filezilla). Die Einstellungen sind dann sofort gültig.

Wichtig: Vergewissern Sie sich vor dem Hochladen der .htaccess Datei, dass nicht bereits eine (versteckte) .htaccess Datei auf dem Server liegt. Wird eine bestehende .htaccess Datei überschrieben, kann das zu einem Absturz der Webseite führen oder diverse Fehler verursachen! Befindet sich bereits eine .htaccess Datei auf Ihrem Server, können Sie diese mit einem Texteditor öffnen und einfach um Ihre gewünschten Einstellungen ergänzen. Die alte .htaccess Datei können Sie anschließend mit der neu abgespeicherten, erweiterten Datei überschreiben.

Einsatzgebiete der .htaccess Datei

 

Weiterleitungen (Redirects) von einer alten URL auf eine neue URL

Die Weiterleitung einer alten Seite auf eine neue Seite ist eine der Hauptanwendungen der .htaccess Datei. Hierfür muss das dafür notwendige Apache Modul „mod_rewrite“ beim jeweiligen Hoster aktiviert sein (dies ist bei gängigen Hostern wie 1&1, Strato, All Inkl usw. in der Regel automatisch der Fall).

Weiterleitungen werden meist im Zuge eines Website Relaunches durchgeführt. Bei einem Website Relaunch verändern sich oftmals die URLs der einzelnen Seiten oder werden vollständig entfernt, beispielsweise, weil eine angebotene Leistung nicht mehr aktuell ist. Rufen Besucher nun die veraltete URL auf, erhalten sie eine Fehlermeldung, weil die Seite nicht mehr existiert. Dies kann zu Seitenabsprüngen führen und die Usability negativ beeinflussen.

Daher empfiehlt es sich, Besucher beim Aufruf nicht mehr existenter URLs automatisch auf die neue URL bzw. eine alternative URL (z.B. die Startseite) weiterzuleiten. Diese Weiterleitung lässt sich durch einen Eintrag in der .htaccess einrichten.

Dafür können wir dem Redirect wiederum zwei mögliche Statuscodes mitgeben: 301 oder 302:

301: Es handelt sich um eine dauerhafte Weiterleitung. Diese Information ist auch für Suchmaschinen wichtig, damit sie wissen, dass eine Ressource dauerhaft verschoben wurde. Bei einem Website Relaunch wäre dieser Statuscode also angebracht.

302: Es handelt sich nur um eine temporäre Weiterleitung. Anschließend gilt wieder die bisherige Zieladresse.

Bei einer permanenten Weiterleitung müssen wir folgende Codezeile in die .hattcess Datei einfügen:

RewriteEngine On
RewriteRule ^neues\.html$ /aktuelles.html [R=301,L]

Mit der Zeile „RewriteEngine On“ aktivieren wir zunächst die Weiterleitung. Anschließend teilen wir dem Server mit, dass die alte Seite „XXXXX“ dauerhaft auf die neue Seite „XXXX“ weitergeleitet werden soll.

Mit den Zeichen ^ und $ wird der Anfang und das Ende der umzuleitenden Seite definiert. Der Punkt . steht in regulären Ausdrücken eigentlich für ein beliebiges Zeichen. Meinen wir wirklich einen Punkt, müssen wir diesen mit einem vorangestellten Backslash \ kennzeichnen.

Am Ende der Zeile wird der Statuscode für die Weiterleitung (Redirect) innerhalb der eckigen Klammern angegeben. Mit dem zusätzlichen Parameter L (Last) kann festgelegt werden, dass alle weiteren Regeln in der .htaccess Datei ignoriert werden, sofern die Regel zutrifft.

Weiterleitung einer kompletten Domain

Möchte man eine komplette Domain auf eine andere Domain weiterleiten (z.B. bei einem Domainwechsel oder weil man dieselbe Domain über unterschiedliche Top Level Domains wie .de, .com usw. aufrufbar machen möchte), kann man dies über folgenden Code in der .htaccess Datei erreichen:

RewriteEngine On
Redirect 301 / https://www.domain.de
Wichtig: Dieser Code muss in die .htaccess Datei der Domain eingetragen werden, welche weitergeleitet werden soll!

Weiterleitung von HTTP auf die verschlüsselte Verbindung mit HTTPS

Im Zuge der SSL Verschlüsselung einer Webseite, kann die gesamte Domain mit folgendem Code auf die verschlüsselte HTTPS Version umgeleitet werden

RewriteEngine On
RewriteCond %{Server_Port} !=443
RewriteRule ^(.*)$ https://ihredomain.tld/$1 [R=301, L]

Verzeichnisschutz

Wollen Sie einzelne Verzeichnisse oder Dateien Ihres Webservers mit einem Verzeichnisschutz versehen, können Sie diesen über die .htaccess Datei einrichten. Hierfür benötigen Sie allerdings noch eine zweite Datei mit dem Namen „.htpasswd“, in welcher die jeweiligen Benutzer und deren Passwörter gespeichert werden. Die .htpasswd Datei könnte wie folgt aussehen:

User1:duCmo1zxkKx6Y
User2:mou3IYjSLpGWI
User3:HGKS9XzDXXAXQ

Während Sie die .htpasswd nun im Root-Verzeichnis Ihrer Webseite ablegen müssen, muss die .htaccess Datei in dem Verzeichnis abgelegt werden, das durch ein Passwort geschützt werden soll.

Die .htaccess Datei sollte folgenden Code enthalten:[

AuthType Basic
AuthName “Passwortgeschütztes Verzeichnis”
AuthUserFile /<Pfad zur Passwortdatei>/.htpasswd
AuthPGAuthoritative Off
require user User1 User2 User3

Vermeidung von Duplicate Content

Ist eine Webseite mit den gleichen Inhalten sowohl über ihredomain.de (ohne vorangestelltes www) als auch über www.ihredomain.de (mit vorangestelltem www) aufrufbar, wird dies von Suchmaschinen als Duplicate Content gewertet. Um das Problem zu beheben, sollten Sie sich nur auf eine Version der Seite festlegen. Je nachdem, für welche Version Sie sich entscheiden, müssen Sie die andere Variante mittels der .htaccess Datei auf die richtige Version weiterleiten:

Weiterleitung von www auf non-www

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.name-der-domain\.de$ [NC]
RewriteRule ^(.*)$ http://name-der-domain.de/$1 [R=301,L]

Weiterleitung von non-www auf www

RewriteEngine On
RewriteCond %{HTTP_HOST} ^webseite.de$ [NC]
RewriteRule ^(.*) http:// www.beispiel.de /$1 [L,R=301]

Anlegen einer individuellen 404 Fehlerseite

Webserver zeigen standardmäßig eine eher unschöne Meldung an, wenn es beim Zugriff auf eine Webseite zu einem 404 Fehler kommt, weil die angeforderte Seite nicht gefunden werden konnte. Sicherlich kommt Ihnen diese Fehlermeldung bekannt vor:

error 404 seite beispiel

Auf Besucher wirkt das natürlich nicht gerade einladend, weswegen die meisten eine Seite auch sofort wieder verlassen.

Mithilfe der .htaccess Datei haben Sie die Möglichkeit, stattdessen eine mittels HTML selbst erstellte 404 Fehlerseite zu verknüpfen. Diese können Sie beispielsweise um Ihre Kontaktinformationen oder einem Link zur Startseite ergänzen, um die Absprungrate zu reduzieren.

Die individuelle 404 Fehlerseite verlinken Sie in der .htaccess Datei wie folgt:

ErrorDocument 404 /verzeichnispfad/404.html

Sperrung bestimmter IP-Adressen

Manchmal kann es notwendig sein, bestimmten IP-Adressen den Zugriff auf Ihre Webseite zu verwehren, beispielsweise, weil Hacker versuchen, Ihre Webseite anzugreifen. Mithilfe der .htaccess können einzelne oder mehrere IP-Adressen blockiert werden. Außerdem können Sie andersherum aber auch nur bestimmten IP-Adressen den Zugriff erlauben, zum Beispiel, wenn Sie das Webangebot nur Mitarbeitern im firmeneigenen Intranet zur Verfügung stellen möchten.

order deny,allow
deny from .aol.com
deny from 192.168
allow from 192.168.220.102

Im obigem Beispiel würden alle Zugriffe mit der numerischen IP-Adresse 192.168 abgewiesen werden, mit Ausnahme eines Users mit der IP-Adresse 192.168.220.102.

Bei folgendem Beispiel würden nur bestimmte IP Adressen ausgeschlossen werden, während alle anderen Zugriff erhalten:

order allow,deny
deny from 192.168.2.17
deny from 10.10.20.63
allow from all

Versucht nun ein User mit einer gesperrten Adresse die Seite aufzurufen, bekommt er einen 403 Fehlercode als Antwort (Zugriff verweigert).

Browser Caching

Im Rahmen der PageSpeed Optimierung lässt sich auch das Browser Caching über eine Einstellung in der .htaccess Datei bewerkstelligen.

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html “access plus 500 seconds”
ExpiresByType image/gif “access plus 14 days”
ExpiresByType image/ico “access plus 14 days”
ExpiresByType image/jpeg “access plus 14 days”
ExpiresByType image/jpg “access plus 14 days”
ExpiresByType image/png “access plus 14 days”
ExpiresByType text/css “access plus 14 days”
ExpiresByType text/javascript “access plus 14 days”
ExpiresByType application/x-javascript “access plus 14 days”
ExpiresByType application/javascript “access plus 14 days”
</IfModule>

In unserem Beispiel werden die jeweiligen Dateitypen also für 14 Tage auf dem lokalen Computer des Seitenbesuchers zwischengespeichert. Diese Zeitangabe können Sie natürlich beliebig anpassen.

Hotlinking verhindern

Beim Hotlinking werden Medien Ihrer Webseite wie Bilder oder Videos von einer dritten Person auf dessen Seite verlinkt. Das Problem: Da die Dateien dennoch auf Ihrem Server gespeichert sind, bedient sich die verlinkende Person beim Aufruf der Dateien auch Ihres Datenvolumens. Das kann sich negativ auf die Performance Ihrer Webseite auswirken.

Hotlinking können Sie mit folgender Ergänzung in der .htaccess Datei verhindern:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://ihre-domain/.*$ [NC] [OR]
RewriteCond %{HTTP_REFERER} !^http://www.ihre-domain/.*$ [NC] [OR]
RewriteRule .*\.(gif|GIF|jpg|JPG|bmp|BMP|wav|mp3|wmv|avi|mpeg)$ – [F]

PHP Memory Limit erhöhen

Das PHP Memory Limit bestimmt den maximalen Arbeitsspeicherverbrauch, den alle verwendeten PHP Scripts auf dem Server gemeinsam verursachen dürfen. WordPress-Webseiten basieren beispielsweise auf PHP. Vor allem bei umfangreichen Webseiten kann es schnell passieren, dass es plötzlich zu einer „Memory Limit exhausted“ Fehlermeldung kommt.

Das Memory Limit können Sie über folgende Einstellung in der .htaccess Datei manuell erhöhen:

php_value memory_limit 128M

128M steht in diesem Fall für ein Limit von 128 Megabyte. Je nach Speicherbedarf können auch andere Limits gesetzt werden.

« Zurück zum Glossar

Enquire now

Give us a call or fill in the form below and we will contact you. We endeavor to answer all inquiries within 24 hours on business days.