.htaccess: Unterschied zwischen den Versionen
(→Allgemeine Informationen) |
|||
Zeile 3: | Zeile 3: | ||
== Allgemeine Informationen == | == Allgemeine Informationen == | ||
− | Bei einer .htaccess-Datei | + | Bei einer .htaccess-Datei handelt es sich um eine Konfigurationsdatei des Apache-Webservers für einzelne Verzeichnisse. Die .htaccess-Dateien stellen einen wichtigen Bestandteil der Konfiguration eines Webservers dar und einen der üblichen Wege, um beispielsweise bestimmten Nutzern Zugriff auf bestimmte Verzeichnisse und Daten auf einem Server zu erlauben. |
Den .htaccess Dateien für einzelne Verzeichnisse übergeordnet sind die zentralen Konfigurationsdateien (httpd.conf), die die grundlegende Arbeitsweise eines Apache-Webservers regeln. Diese befinden sich jedoch innerhalb des Dateienverzeichnisses des Webservers, sodass sogar Nutzer, die ein Web-Projekt verwalten, keinen direkten Zugriff auf diese Konfigurationsdateien haben. Der Server-Admin legt in den zentralen Konfigurationsdateien fest, welche Berechtigungen einzelne Nutzer oder Nutzergruppen zugeteilt bekommen. | Den .htaccess Dateien für einzelne Verzeichnisse übergeordnet sind die zentralen Konfigurationsdateien (httpd.conf), die die grundlegende Arbeitsweise eines Apache-Webservers regeln. Diese befinden sich jedoch innerhalb des Dateienverzeichnisses des Webservers, sodass sogar Nutzer, die ein Web-Projekt verwalten, keinen direkten Zugriff auf diese Konfigurationsdateien haben. Der Server-Admin legt in den zentralen Konfigurationsdateien fest, welche Berechtigungen einzelne Nutzer oder Nutzergruppen zugeteilt bekommen. |
Version vom 5. Oktober 2020, 15:08 Uhr
Inhaltsverzeichnis
Allgemeine Informationen
Bei einer .htaccess-Datei handelt es sich um eine Konfigurationsdatei des Apache-Webservers für einzelne Verzeichnisse. Die .htaccess-Dateien stellen einen wichtigen Bestandteil der Konfiguration eines Webservers dar und einen der üblichen Wege, um beispielsweise bestimmten Nutzern Zugriff auf bestimmte Verzeichnisse und Daten auf einem Server zu erlauben.
Den .htaccess Dateien für einzelne Verzeichnisse übergeordnet sind die zentralen Konfigurationsdateien (httpd.conf), die die grundlegende Arbeitsweise eines Apache-Webservers regeln. Diese befinden sich jedoch innerhalb des Dateienverzeichnisses des Webservers, sodass sogar Nutzer, die ein Web-Projekt verwalten, keinen direkten Zugriff auf diese Konfigurationsdateien haben. Der Server-Admin legt in den zentralen Konfigurationsdateien fest, welche Berechtigungen einzelne Nutzer oder Nutzergruppen zugeteilt bekommen.
Wenn ein Benutzer die Berechtigung erhalten soll, die bestehenden Konfigurationen aus der zentralen Konfigurationsdatei für ein einzelnes Verzeichnis zu überschreiben und individuell neu einzustellen, wird ihm der Zugriff auf die .htaccess-Datei genehmigt. Der Benutzer hat dann die Möglichkeit .htaccess-Dateien in seinem eigenen Verzeichnis anzulegen und nach individuellen Anforderungen und Bedürfnissen zu konfigurieren. Alle Einstellungen, die in einer .htaccess-Datei vorgenommen werden, gelten für das jeweilige Verzeichnis inklusive aller Unterverzeichnisse, in dem die Datei abgelegt wurde. Alle neu konfigurierten Einstellungen treten sofort in Kraft, sodass ein Neustart des Webservers nicht nötig ist. Der Webserver Apache sucht bei jedem Aufruf einer Website automatisch nach der zuständigen .htaccess-Datei. Falls diese nicht vorhanden ist, wird auf die globale Serverkonfiguration aus der httpd.conf zugegriffen.
Wie kann eine .htaccess Datei erstellt werden?
Bei .htaccess-Dateien handelt es sich um reine Textdateien, die sich mit einem einfachen Texteditor wie zum Beispiel Notepad relativ einfach bearbeiten lassen. Die meisten Webserver stellen ihren Nutzern Remote-Zugang per Telnet- oder SSH zur Verfügung. Somit können .htaccess-Dateien direkt auf dem Server erstellt und bearbeitet werden, indem der geeignete Texteditor aufgerufen wird. Wenn sich der Zugang zum Webserver jedoch lediglich per FTP realisieren lässt, kann eine .htaccess-Datei lokal auf dem eigenen Computer erstellt und danach hochgeladen werden.
Die Konfigurationsdateien gelten für das Verzeichnis, in dem sie abgelegt werden und alle dazugehörigen Unterverzeichnisse. Wenn in einem der Unterverzeichnisse eine andere Konfiguration gelten soll, muss dort wiederum eine eigene .htaccess-Datei erstellt und abgelegt werden. Die Einträge der jeweils geltenden Konfigurationsdatei überschreiben die Konfigurationseinträge aus den darüber liegenden Verzeichnissen.
Wofür wird die .htaccess Datei verwendet?
Die klassischen Einsatzbereiche der .htaccess-Datei sind das Umleiten und Umschreiben von URLs, also von statischen Adressen, die auf die Position einer Datei auf einem Webserver zeigen und diese aufrufen. Darüber hinaus werden die Konfigurationsdateien eingesetzt, um Fehlerdokumente zu verwalten und den Zugriff auf einzelne Ressourcen oder ganze Verzeichnisse zu regeln.
Umschreiben von dynamischen in statische URLs
Das Apache-Modul "mod_rewrite" ist auf den meisten Apache-Webservern standardmäßig installiert und aktiviert. Es wird in erster Linie eingesetzt, um dynamische URLs umzuschreiben, sodass diese für Menschen und Suchmaschinen wie statische URLs aussehen und von Web-Crawlern auch so behandelt werden. Bei einer dynamischen URL handelt es sich um eine dynamische Website, die im Moment der Abfrage aus in einer Datenbank hinterlegten Daten und einer Anwendung erzeugt wird. Beispiel-Eintrag in die .htaccess-Datei, um dynamische URLs in statische zu konvertieren:
RewriteEngine On RewriteRule (.*)_(.*).html$ /example.php?url_isbn=$1 [qsappend,L]
Im obigen Beispiel ist /example.php die dynamische URL, die in /example-1.html umgeschrieben werden soll, wobei 1 eine Variable ist.
Erstellen von passwortgeschützten Bereichen
Wer keine komplizierten Login-Scripts einsetzen, dennoch aber auf passwortgeschützte Bereiche auf seinem Server nicht verzichten möchte, kann stattdessen auf Möglichkeiten der .htaccess-Datei zurückgreifen. Für diese Art der Authentifizierung muss zunächst eine Datei mit dem Namen .htpasswd erstellt werden. In dieser werden die User mit den dazugehörigen Passwörtern gespeichert, wobei diese auch unverschlüsselt eingetragen werden dürfen. Passwortgeschützte Bereiche können auf folgende Weise erstellt werden:
AuthType Basic AuthName "Geschützter Bereich" AuthUserFile //.htpasswd AuthPGAuthoritative Off require user User1 User2 User3 User4
Die .htpasswd-Datei mit den Usern und den zugehörigen verschlüsselten Passwörtern wird separat erstellt:
User1:dsdR4578 User2:tTr84546 User3:dFd87f4d User4:qOkp8745
Weiterleitungen
Einer der wichtigsten Einsatzbereiche von .htaccess sind Weiterleitungen (Redirects). Mit dieser Technik lassen sich sowohl einzelne Dateien innerhalb einer Domain als auch Anfragen auf eine externe Domain weiterleiten. Dies ist besonders dann nützlich, wenn die Website auf eine neue Domain umzieht. Wenn der folgende Code im Root-Verzeichnis gespeichert wird, sorgt er dafür, dass alle Anfragen an die ursprüngliche Domain vom Apache-Webserver zu der neuen Domain weitergeleitet werden:
RewriteEngine On RewriteCond %{REQUEST_URI} (.*) RewriteRule ^(.*)$ http://new-domain.tld/$1 [L,R=301]
Wie in dem Codebeispiel zu sehen ist, kommt hier ebenfalls das Modul mod_rewrite zum Einsatz.
Mit derselben Vorgehensweise lassen sich einzelne Dateien innerhalb einer Website weiterleiten:
RewriteEngine On Redirect 301 /old-path/file.html http://www.example.com/new-path/file.html
Blockieren bestimmter IP-Adressen
Die .htaccess Datei kann außerdem genutzt werden, um bestimmten IP-Adressen (beispielsweise bei Cyberangriffen) den Zugriff auf eine Website zu verweigern. Hierfür muss folgender Eintrag in die Datei eingefügt werden:
order allow,deny deny from 195.138.7.19 deny from 10.10.20.73 allow from all
Hierbei wird jede IP-Adresse, die blockiert werden soll, in eine eigene Zeile eingetragen.
Wann sollte eine .htaccess Datei eingesetzt werden?
Die .htaccess-Datei ist eine bedeutende Konfigurationsdatei, mit der sich unterschiedliche Einstellungen am Apache-Webserver realisieren lassen. Da alle Änderungen in der Konfiguration sofort in Kraft treten, kommt dem richtigen Umgang mit .htaccess eine wichtige Rolle zu. Falsche Angaben und Konfigurationen in einer .htaccess-Datei können erheblichen Schaden an der betroffenen Website verursachen. Aus diesem Grund sollte die Datei stets mit Bedacht eingesetzt werden und nur dann, wenn kein Zugriff auf die zentrale Konfigurationsdatei vorhanden ist.
Weiterführende Links
- https://jweiland.net/know-how/internet/htaccess-konfigurieren.html
- https://www.was-mit-internet.de/htaccess-konfiguration/