Was ist die .htaccess Datei? Umfangreich erklärt + 9 Beispiele


Die .htaccess ist eine textbasierte Konfigurationsdatei von Apache Webservern. Du kannst damit das Verhalten von solchen Servern bzw. den darauf gespeicherten Websites beeinflussen.


Die am häufigsten genutzten Funktionen sind:

  • Weiterleitungen
  • Passwort/IP-gesperrte Bereiche

Außerdem kannst du damit Folgendes machen:

  • Dateibaum deines Servers auflisten
  • Caching Einstellungen treffen
  • Fehlerseiten an Fehlercodes binden
  • www Weiterleitungen
  • https:// Weiterleitungen
  • https:// erzwingen mittels HSTS
  • Startseite mit der Option DirectoryIndex definieren
  • u.v.m.

Wir erklären dir, wie du die .htaccess richtig konfigurierst. Wenn du die Grundlagen verstanden hast, kannst du anschließend unseren .htaccess Generator verwenden.


Titelbild




.htaccess Datei erstellen & richtig verwenden

ACHTUNG: Bevor du deine .htaccess Datei bearbeitest, solltest du unbedingt ein Backup der aktuellen Datei machen. Speichere einfach den Inhalt in einer lokalen Textdatei.


Ein einziger Tippfehler führt vielleicht dazu, dass deine Website nicht mehr erreichbar ist.


Wenn du die neue .htaccess Datei hochgeladen hast, prüfe sofort, ob deine Website noch funktioniert. Wenn nicht, lade die alte Version hoch und deine Website ist sofort wieder erreichbar.



Wo muss die .htaccess liegen?

Die .htaccess Datei befindet sich in der Regel im Hauptverzeichnis der Website. Die Einstellungen sind in diesem Verzeichnis und in allen Unterverzeichnissen wirksam. Eine .htaccess kann aber auch in jedem beliebigen Unterverzeichnis erstellt werden, diese überschreibt dann die Einstellungen der übergeordneten Datei.



Wo finde ich die .htaccess bei WordPress?

Die .htaccess Datei wird bei der WordPress Installation automatisch erstellt. Du findest sie im Hauptverzeichnis deiner WordPress Website also z.B. im /www/ Verzeichnis. Wenn du WordPress in einem Unterverzeichnis installiert hast, findest du die .htaccess dort.


Titelbild

Was macht die .htaccess, wenn ich eine Website aufrufe?

Wenn du eine Adresse aufrufst, wird die .htaccess für jede einzelne Komponente der Webseite durchlaufen. Beim Aufruf dieses Guides werden insgesamt 43 Dateien geladen:


  • 1 HTML Datei
  • 15 CSS Dateien
  • 3 Schrift Dateien
  • 8 Javascript Dateien
  • 16 Grafiken

Bei jeder einzelnen Datei wird die .htaccess ausgewertet und entsprechend gehandelt.



Wie lege ich eine .htaccess Datei an?

  • Texteditor öffnen. Verwende unter Windows z.B. den “Editor”. Es muss aufjedenfall ein reiner Texteditor sein. Verwende auf keinen Fall “Word” oder ähnliche Programme.
  • Inhalte einfügen: Füge die gewünschten Code-Zeilen ein. Weiter unten findest du Beispiele für die gewünschten Anweisungen.
  • Speichere die Datei mit dem Namen “.htaccess” ab. Wichtig ist der Punkt vor dem Namen und dass du die Datei ohne Dateiendung erstellst. Wenn dein Editor nur Dateien mit Dateiendung zulässt, speichere die Datei als .txt ab und entferne danach die Endung.
    Es kann sein, dass der Datei Explorer die .htaccess nicht anzeigt.
  • Lade die Datei per FTP in das gewünschte Verzeichnis z.B: /www/
    Es kann sein, dass das FTP Programm die .htaccess nicht anzeigt.
  • Überprüfe, ob die gewünschten Änderungen funktionieren.

ACHTUNG: Achte bei deiner .htaccess Datei auf eine 100% richtige Schreibweise. Andernfalls liefert deine Website einen “500 Internal Server Error” - einen unerwarteten Serverfehler. Prüfe sofort nach dem Hochladen, ob die Website und die Änderungen wie gewünscht funktionieren.


Als alldomains.hosting Kunde kannst du die Datei auch direkt im Hosting Control Panel Dateimanager erstellen und bearbeiten.



Was hat es mit dem “.” auf sich?

Bei Unixsystemen sind Dateinamen mit einem vorangestellten Punkt üblich. Es handelt sich dabei um versteckte Dateien.


Wie die versteckten Dateien funktionieren und warum wir sie brauchen, kannst du in diesem Wikipedia Artikel lesen.



Wieso sehe ich meine .htaccess nicht? (Filezilla & Windows Explorer)

Dateien, die mit einem Punkt ( . ) beginnen sind in den meisten Dateimanagern standardmäßig verborgen. In der Regel gibt es aber eine Einstellung, welche die versteckten Dateien anzeigt.


In Filezilla findest du diese Einstellungen unter “Server” -> “Auflistung versteckter Dateien erzwingen”



Versteckte Dateien anzeigen

Im Windows Explorer unter “Ansicht” -> “Ausgeblendete Elemente”.



Versteckte Dateien anzeigen

Sollte ich die .htaccess benutzen?

Wenn du deine Website auf einem “normalen” Shared Hosting betreibst, ist die .htaccess deine einzige Option.


Wenn du aber einen eigenständigen Webserver betreibst, kannst du die Einstellungen auch in der httpd.conf tätigen.


Mit dieser kannst du ebenfalls das Verhalten des Webservers beeinflussen. Es benötigt aber einen Neustart des Webservers, um diese Einstellungen zu übernehmen.



Anwendungsbeispiele inkl. Code-Vorlagen


Weiterleitung mittels .htaccess:

Was sind 301 und 302 Weiterleitungen?

301 und 302 sind HTTP Status Codes. Sie werden beim Aufrufen einer Webseite an den Browser gesendet und geben diesem eine Rückmeldungen zum Aufruf der Domain.


301 und 302 sind Status Codes für Umleitungen. Sie geben an, ob eine Weiterleitung temporär oder permanent ist.


301 Moved Permanently:

Die Anfrage wird an die angegebene URL weitergeleitet. Auch Suchmaschinen erkennen die Änderung und tauschen gegebenenfalls die alte durch die neue URL aus.


Wann soll ich einen 301 Redirect machen?

Ein 301 Redirect sollte nur verwendet werden, wenn man eine Seite wirklich permanent an eine andere URL weiterleitet. Also zum Beispiel beim Umzug auf eine ganz andere Domain:


RewriteEngine On

#Externe Weiterleitung

RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]

RewriteCond %{HTTP_HOST} ^newdomain.com$

RewriteRule (.*)$ https://olddomain.com/$1 [R=301,L]


Oder auch bei einem internen Umzug auf eine andere URL:


#Interne Weiterleitung


Redirect 301 mydomain.com/oldurl mydomain.com/newurl


302 Found ( früher: Moved Temporarily ):

Die Anfrage wird an die angegebene URL weitergeleitet. Die Weiterleitung ist aber nur temporär, die Indexierung soll bestehen bleiben.


Wann soll ich einen 302 Redirect machen?

302 Redirects sollen nur für temporäre Weiterleitungen verwendet werden.


#Externe Weiterleitung

Redirect 302 olddomain.com newdomain.com


WWW Weiterleitung:

Du kannst Besucher, die deine Domain ohne www. (also "example.com") aufrufen, auf die URL mit www. weiterleiten:


#auf www weiterleiten

RewriteCond %{HTTP_HOST} !^www.deinedomain.com$ [NC]

RewriteRule ^(.*)$ http://www.deinedomain.com$1 [L,R=301]


https:// Weiterleitung

Wenn du willst, dass deine Besucher nur auf einer SSL gesicherten Version deiner Seite sein können, kannst du das mit dieser Codevorlage machen:


#auf SSL weiterleiten

RewriteCond %{HTTPS} off

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}




IP gesperrten Bereich einrichten

Für interne Mitarbeiter Bereiche ist es optimal eine IP-Sperre einzurichten. Die Seite ist dann nur über das interne Netzwerk erreichbar:


#IP Sperre

order allow,deny

deny from IP-Adresse


403 Forbidden Fehler


Fehlerseiten definieren

Wenn du eine Fehlerseite erstellt und auf deinen Webspace hochgeladen hast, kannst du diese mit Hilfe der .htaccess aktivieren.
Eine 404 Fehlerseite im Pfad “/pfad_zur_fehlerseite.html” erstellst du so:


ErrorDocument 404 /pfad_zur_fehlerseite.html




Options +Indexes - Dateien im Verzeichnis auflisten

Wenn du in einem Verzeichnis deines Webspaces Dateien auflisten willst (z.B. um sie zum Download anzubieten), kannst du dies mit diesem Codebeispiel machen:


#Dateien auflisten

Options +Indexes


Auflistung von Dateien


DirectoryIndex - Startseite festlegen

Mit der DirectoryIndex Option legst du die Startseite für ein Verzeichnis fest. Die Anweisungen sind auch für die jeweiligen Unterverzeichnisse gültig. Standardmäßig lautet die Startseite index.html.


Um zum Beispiel die index.php vor der start.html vor der index.html aufzurufen kannst du diesen Eintrag hinzufügen:


#DirectoryIndex


DirectoryIndex index.php start.html index.html




Browser Caching aktivieren

Wenn ein Besucher deine Webseite aufruft, muss der Browser zuerst die Website-Daten herunterladen. Das dauert je nach Internetanbindung vom Besucher einige Zeit.


Damit beim nächsten Aufruf nicht jede einzelne Datei neu geladen werden muss, kannst du dem Browser des Besuchers mit Hilfe dieses Codes mitteilen, dass er die Website-Daten lokal zwischenspeichern soll. Für jeden Dateityp kannst du einen Zeitraum festlegen.


# BEGIN Expire headers  

<IfModule mod_expires.c>  

  ExpiresActive on

  # default expiry times.

  ExpiresDefault "access plus 2 days"

  ExpiresByType image/jpg "access plus 1 month"

  ExpiresByType image/svg+xml "access 1 month"

  ExpiresByType image/gif "access plus 1 month"

  ExpiresByType image/jpeg "access plus 1 month"

  ExpiresByType image/png "access plus 1 month"

  ExpiresByType text/css "access plus 1 month"

  ExpiresByType text/javascript "access plus 1 month"

  ExpiresByType application/javascript "access plus 1 month"

  ExpiresByType application/x-shockwave-flash "access plus 1 month"

  ExpiresByType image/ico "access plus 1 month"

  ExpiresByType image/x-icon "access plus 1 month"

  ExpiresByType text/html "access plus 600 seconds"

</IfModule>  

# END Expire headers




Bots & unerwünschte Besucher blockieren

Deine Website wird täglich von vielen Bots aufgerufen. Manche können deine Aufrufzahlen verfälschen oder die Ladezeit verschlechtern.


Hier lernst du, wie du mit Zugriffskontrollen Bots & unerwünschte Besucher fern hältst.

Hier lernst du Besucher von bestimmten Domains auszusperren.




Zeitzone des Webservers festlegen

Wenn die Zeitzone deines Webservers, falsch ist, kannst du die richtige Zeitzone mit diesem Befehl festlegen:


SetEnv TZ Europe/Berlin




Passwortgeschützter Bereich

Wie du ein bestimmtes Verzeichnis deiner Webseite mit einem Passwort schützt, kannst du in diesem Guide über Zugriffskontrolle lernen.