11 Tricks für deine htaccess Datei - so funktioniert die htaccess
Eine der populärsten und vielseitigsten Methoden, um Einstellungen auf einer Webseite vorzunehmen, besteht in der Verwendung einer .htaccess Datei. Dieses Vorgehen besitzt zahlreiche Vorteile gegenüber Alternativen wie etwa die globale oder lokale Konfiguration eines Webservers und empfiehlt sich in vielen Situationen, weil es eine ebenso einfache wie effiziente Lösung für eine Vielzahl von häufig auftretenden Problemen bietet. Gleichzeitig zeigen sich in seiner Verwendung lediglich wenige technische Voraussetzungen und Einschränkungen, so dass die .htaccess Datei in mehrfacher Hinsicht so etwas wie ein Schweizer Allzweckmesser für die Arbeit mit Webseiten darstellt.
Achte bitte darauf, dass du die htaccess Datei nur hast, wenn du einen Apache Webserver als Webhosting verwendest. NginX Webhosting verfügt über keine htaccess-Datei.
Inhalt:
Was ist die .htaccess Datei
Wie funktioniert eine .htaccess Datei?
Wie lässt sich eine .htaccess Datei erstellen und bearbeiten?
Praktische Tricks für .htaccess I: Anfragen mit Passwort sichern
Praktische Tricks für .htaccess II: IP Bereiche sperren und freigeben
Praktische Tricks für .htaccess III: Zugriff auf einzelne Dateien oder Dateitypen verbieten
Praktische Tricks für .htaccess IV: Zugriff auf einzelne Dateien oder Dateitypen verbieten
Praktische Tricks für .htaccess V: Durchsuchen von Verzeichnissen verbieten
Praktische Tricks für .htaccess VI: HTTP-Fehler umleiten
Praktische Tricks für .htaccess VII: HTTP auf HTTPS umleiten
Praktische Tricks für .htaccess VIII: Crawler, Bots und Suchmaschinen aussperren
Praktische Tricks für .htaccess IX: PHP Einstellungen verändern
Praktische Tricks für .htaccess X: Umgebungsvariablen setzen
Praktische Tricks für .htaccess XI: Weiterleitung mittels Statuscode 301
Welche weiteren Möglichkeiten bietet die .htaccess Datei?
Was ist die .htaccess Datei?
Die .htaccess Datei ermöglicht es Administratoren einer Webseite, in jedem Verzeichnis eigene Direktiven, Regeln und Konfigurationen zu hinterlegen, die bei einem Aufruf von einem Apache Webserver gelesen, interpretiert und umgesetzt werden. Sie unterscheidet sich von den globalen oder lokalen Einstellungen des Webservers vor allem dadurch, dass sie nicht an einer zentralen Stelle außerhalb der Webseite abgelegt wird, sondern sich stattdessen direkt in einem aufrufbaren Pfad einer Domain befindet. Dies ermöglicht eine ebenso einfache wie effiziente und zuverlässige Steuerung und Koordination und selbst den Aufbau einer hierarchischen Struktur mit aufeinander aufbauenden Anweisungen, die zum Beispiel den Zugriff beschränken, Umleitungen vornehmen oder Besucher nach unterschiedlichen Kriterien analysieren und ihnen konkrete Rechte zuweisen.
Wie funktioniert eine .htaccess Datei?
Bei der .htaccess Datei handelt es sich wie zum Beispiel bei einem PHP Skript oder der Konfiguration von Programmen unter Linux um eine einfache Textdatei, in der ein Administrator die gewünschten Anweisungen in einem standardisierten Format festlegt. Bei dem Aufruf einer Seite wie etwa https://example.org/examples/htaccess ruft der Apache Webserver die Verzeichnisse rekursiv auf - er beginnt also bei example.org und wechselt von diesem schrittweise in die angegebenen Unterverzeichnisse. Bei jedem Schritt überprüft er dabei die Existenz einer .htaccess Datei und führt die dortigen Instruktionen aus, bevor er in die darunter liegende Ebene wechselt. Da der Apache Webserver diese Informationen nicht zwischenspeichert, wirkt sich eine .htaccess Datei unmittelbar und direkt nach ihrer Erstellung aus - ein Neustart oder ein Löschen des Caches ist deshalb nicht erforderlich, damit die htaccess Datei wirksam wird. Für einige der möglichen Befehle benötigt .htaccess allerdings entsprechende Module, die der Apache Webserver laden muss - das prominenteste Beispiel dafür ist die für Umleitungen zuständige Rewrite Engine mod_rewrite.
Jetzt das perfekte Apache Webhosting sichern
Zum Apache Webhosting Vergleich
Wie lässt sich eine .htaccess Datei erstellen und bearbeiten?
Da es sich bei der .htaccess Datei um ein reines Textdokument handelt, lässt es sich mit einem beliebigen mit dem Linuxformat für ASCII Code kompatiblen Editor wie etwa gedit oder mousepad unter Linux oder Notepad++ unter Windows erstellen und bearbeiten. Entscheidend für die Ausführung durch den Apache Webserver ist die korrekte Namensgebung .htaccess, wobei der vorgestellte Punkt ein verstecktes Element kennzeichnet, dass nicht in einem Dateimanager angezeigt wird. Wie in vielen Skriptsprachen und Konfigurationsdateien lassen sich zudem Kommentare einfügen, indem sie mit einer vorgestellten Raute # als nicht ausführbarer Codeteil markiert werden. Für den Effekt ist es nicht relevant, auf welcher Weise die .htaccess erstellt oder gespeichert wird - ob über einen FTP Upload, direkt mittels eines SSH-Zugangs oder über ein Webinterface mit einem Texteditor.
1. Praktische Tricks für .htaccess: Anfragen mit Passwort sichern
Nachdem die Frage: "Was ist eine .htaccess Datei?" beantwortet ist, wird es an der Zeit, einige praktische Tricks und Beispiele zu demonstrieren. Eine der wichtigsten Aufgabe für eine .htaccess Datei stellt ein einfacher, effizienter und sicherer Passwortschutz für bestimmte Verzeichnisse (und deren Unterverzeichnisse) dar. Dies ist eine Alternative zum Noindex über die robots.txt. Er lässt sich durch wenige Befehle herstellen:
AuthType Basic
# Art der Authentifizierung
AuthName "Bitte Login und Passwort eingeben:"
# Titel der Eingabemaske
AuthUserFile /verzeichnis/mit/passwortdatei/.htpasswd
# Absoluter Pfad zu einer Datei mit Usernamen und Passwörtern
AuthPGAuthoritative Off
require valid-user
# Nutzer, die auf geschützten Bereich zugreifen dürfen, hier: alle in der Passwortdatei gespeicherten
Die Passwortdatei enthält eine Kombination aus Nutzernamen und verschlüsselten Passwörtern in und lässt sich über Online-Editoren oder unter Linux mit dem Befehl htpasswd -c NAME erstellen. Der Name ist frei wählbar, als Standard gilt jedoch .htpasswd. Mit require lässt sich zudem der Nutzerkreis weiter einschränken, zum Beispiel durch require user Name1 Name2 Name3.
2. Praktische Tricks für .htaccess: IP Bereiche sperren und freigeben
Durch eine .httaccess lässt sich zudem der Zugriff für IP-Adressen oder -Bereiche sperren - gerade bei DDos Angriffen häufig zielführend:
Order deny,allow
# Erst die Blockierung, dann erlaubte IPs
Deny from .t-online.de
# Anfragen von Nutzern mit der Kennung t-online.de generell blockieren
Deny from 255.254 255.255
# Alle IPv4 blockieren, die mit 255.255 beginnen. Mehrere IPs oder Bereiche können durch ein Leerzeichen getrennt werden.
Allow from 255.255.0.1
# Ausnahme von der Sperrung für die IP 255.255.0.1
3. Praktische Tricks für .htaccess: Zugriff auf einzelne Dateien oder Dateitypen verbieten
Sinnvoll kann es ebenfalls sein, allen Besuchern grundsätzlich den externen Zugriff auf bestimmte Dateitypen zu verbieten - etwa Konfigurationen und .htaccess selbst:
# Endung oder Namen der Datei definieren
Deny from all
# Blockiert jeden Zugriff von außen
4. Praktische Tricks für .htaccess IV: Zugriff auf mehrere Dateien oder Dateitypen verbieten
Es lassen sich ebenfalls mehrere Typen miteinander kombinieren:
# Definiert eine Maske für alle Dateien unterhalb des Verzeichnis
Order Allow,Deny
Deny from all
5. Praktische Tricks für .htaccess V: Durchsuchen von Verzeichnissen verbieten
Ein weiterer Befehl ermöglicht es, das Durchsuchen von Verzeichnissen zu erlauben oder zu verbieten, falls es keine index.html oder index.php enthält:
Option All -Indexes
# Verbietet das Anzeigen des Verzeichnisinhalts, +Indexes erlaubt es
6. Praktische Tricks für .htaccess VI: HTTP-Fehler umleiten
Eine der mächtigsten Methoden der .htaccess Datei besteht in ihrer Fähigkeit, Anfragen durch den Apache Webserver auf andere Instanzen umleiten zu lassen. Dazu ist es zwingend erforderlich, dass das Apache Modul mod_rewrite installiert und aktiviert ist. Das Format ist einfach: Zunächst definiert der Administrator einer Webseite mit dem Kommando RewriteCond eine Bedingung, anschließend gibt er mit RewriteRule ein neues Ziel vor.
Eine der populärsten Aufgaben besteht darin, Besucher bei einer Fehlermeldung wie dem HTTP Error 404 Not Found auf eine alternative Seite umzuleiten, die statt des Standardtexts einen eigenen Inhalt anzeigt. Dafür benötigt es lediglich eine einzelne Zeile:
ErrorDocument 404 /verzeichnis/errors/404.html
Die Namen des Verzeichnisses sowie der Datei lassen sich selbstverständlich frei wählen, beide müssen sich jedoch innerhalb der Webseite befinden. Alternativ ist es ebenfalls möglich, als Ziel eine absolute interne oder externe Domainadresse anzugeben:
ErrorDocument 404 www.example.org/errors/404.html
7. Praktische Tricks für .htaccess VII: HTTP auf HTTPS umleiten
Um- und Weiterleitungen sind jedoch ein sehr wirksames und universelles Werkzeug, das sich für zahlreiche weitere Verwendungen anbietet, so zum Beispiel um alle Anfragen in Klartext über HTTP auf das seit 2015 als Standard geltende verschlüsselte HTTPS zu lenken:
RewriteEngine On
RewriteCond %{HTTPS} !on
# Bedingung: Jede Verbindung, die nicht HTTPS verwendet
# Alternativ: RewriteCond %{Server_Port} !=443
# Erfasst jede Anfrage von außen, die nicht auf dem von HTTPS genutzten Port 443 erfolgt
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
# Regel: Umleitung auf die Adresse https://Domainname/URL
# Alternativ können auch hier absolute Pfade angegeben werden, zum Beispiel:
# RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
# Die eckigen Klammern geben einen HTTP Statuscode an, in diesem Fall 301 Moved Permanently
8. Praktische Tricks für .htaccess VIII: Crawler, Bots und Suchmaschinen aussperren
Sinnvoll kann es ebenfalls sein, unerwünschten Crawlern, Bots und Suchmaschinen grundsätzlich den Besuch einer Seite zu verbieten. Im Unterschied zu einer robots.txt erfolgt dies bereits durch den Apache Webserver und lässt sich nicht einfach umgehen oder ignorieren:
RewriteEngine On
RewriteBase /
# legt das Wurzelverzeichnis als unterste Instanz fest
RewriteCond %{HTTP_USER_AGENT} ^Spam [OR]
# Die Umleitung erfolgt hier über die Identifizierung der Besucher als User Agent
# Mehrere Bedingungen lassen sich mit logischen Operatoren wie [OR] verknüpfen
RewriteCond %{HTTP_USER_AGENT} ^Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Crawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot [OR]
RewriteCond %{HTTP_USER_AGENT} ^googlebot
# Sperrt die Webseite vollständig für die Indexierung durch Google
# In der letzten Zeile darf kein [OR] stehen, weil die Bedingung hier endet
RewriteRule ^.* - [R=403,L]
# Lenkt die betroffenen User Agents auf den HTTP Error Code 403 Forbidden um
9. Praktische Tricks für .htaccess IX: PHP Einstellungen verändern
Über .htaccess lassen sich auch direkt Variablen der PHP Umgebung (PHP Memory Limit bspw.)beeinflussen und setzen, wie etwa in:
php_value memory_limit 128M
# Setzt das Speicherlimit des PHP Interpreters auf 128 Megabyte
Selbstverständlich gelten hier global definierte Grenzen - wer mit diesem Vorgehen plant, Beschränkungen des Webhosting zu umgehen, wird deshalb bis auf wenige Ausnahmen scheitern.
10. Praktische Tricks für .htaccess X: Umgebungsvariablen setzen
Neben der PHP Konfiguration erlaubt es die .htaccess ebenfalls, die Umgebungsvariablen des Systems neu zu definieren:
SetEnv TZ Europe/Berlin
# Verändert eine von dem Apache Webserver genutzte Umgebungsvariable, hier die lokale Zeitzone
Natürlich werden diese lediglich innerhalb des Apache Webservers manipuliert, so dass diese Einstellung ausschließlich für die betreffenden Abfragen gilt und sich nicht auf den gesamten Server auswirken.
11. Praktische Tricks für .htaccess: Weiterleitung mittels Statuscode 301
Nicht zuletzt ist es ebenfalls möglich, einzelne oder alle Anfragen an eine Domain auf eine neue umzuleiten, nachdem etwa ein Umzug erfolgt ist. Beispielwese der 301 Redirect. Dazu benötigt es lediglich eine einzige Zeile:
Redirect 301 /verzeichnis/datei.html https://example.com/datei.html
# Führt einen Redirect 301 bei einer einzelnen Datei durch
RedirectMatch 301 /verzeichnis(.*) https://example.com/$1
# Leitet alle Anfragen von der ursprünglichen Domain auf example.com um
Welche weiteren Möglichkeiten bietet die .htaccess Datei?
Die Optionen für den Einsatz der .htaccess sind vielfältig und zu umfangreich, um sie in einem einzelnen Artikel zu behandeln. Wegen seiner Vielseitigkeit und der einfachen Umsetzung bietet es eine einfache Lösung für eine Vielzahl der Probleme an, die bei einem Apache Webserver auftreten können. Ein weiterer Vorteil dieser Methode liegt darin, dass sie sich rasch und unmittelbar ohne den Neustart eines Servers einsetzen und variieren lässt. Darüber hinaus ermöglicht sie eine sehr detaillierte Abstufung der Maßnahme etwa auf einzelne Verzeichnisse oder Dateien und erfordert keine Zugriffsrechte auf die lokalen oder globalen Konfigurationen des Apache Webservers. Der entscheidende Nachteil liegt darin, dass der separate Zugriff die Performance des Webservers negativ beeinflusst - für Webseiten mit einem hohen Besucheraufkommen empfiehlt sich deshalb, die Einstellungen über Konfigurationsdateien wie httpd.conf vorzunehmen.
Jetzt das perfekte Apache Webhosting sichern
Zum Apache Webhosting Vergleich
Foto: Lawrence Monk auf Pixabay
Schreibe einen Kommentar
- Webhosting
- Webspace
- HTTP
Tags zu diesem Artikel
Weitere Webhoster
Weitere interessante Artikel
Fehler 401 - wie lässt sich der HTTP Error Unauthorized beheben?
Wir zeigen euch wie ihr einfach den Fehler 401 unauthorized beheben könnt.
Wie viel Webspace & Speicherplatz benötigt man
Bei der Planung einer Webseite ist es empfehlenswert, frühzeitig die zahlreichen Eigenschaften eines Webspace zu be...
Im Jahr 2006 riefen wir hosttest ins Leben, um den Webhosting Markt im DACH-Raum transparenter zu machen. Mit derzeit über 400 Webhostern und über 10.000 Angeboten bieten wir dir die beste Grundlage, den für dich passenden Anbieter für Hosting-Leistungen zu finden.
Seit 2015 küren wir zudem alljährlich unsere Webhoster des Jahres und würden uns in Zukunft auch über deine Stimme freuen.
Mehr über uns...