Webserver/htaccess/Einstieg

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Informationen zu diesem Text

Lesedauer
10min
Schwierigkeitsgrad
mittel
Vorausgesetztes Wissen
Grundkenntnisse in
● Webserver

Die mit dem NCSA-Server kompatiblen Webserver kennen das Konzept der .htaccess-Dateien. Heute trifft das vor allem auf den vor allem bei Shared-Hosting weit verbreiteten Webserver Apache Webserver zu.

Allgemeines zu .htaccess-Dateien[Bearbeiten]

.htaccess-Dateien sind Server-Konfigurationsdateien für Verzeichnisse, die zu Ihrem Web-Angebot gehören. So ist die .htaccess-Technik beispielsweise der übliche Weg, um nur bestimmten Benutzern den Zugriff auf bestimmte Daten zu erlauben. .htaccess ist also die Antwort auf die immer wieder gestellte Frage nach einem „richtigen“ Passwortschutz.

Doch mit .htaccess-Dateien können Sie noch viel mehr anstellen als Daten mit Passwörtern zu schützen. So können Sie auch ganze Benutzerkreise automatisch (ohne Passwortzugang) aussperren oder alle bis auf bestimmte aussperren. Sie können Optionen zum so genannten Verzeichnis-Browsing (Web-Browser ruft ein Verzeichnis auf, in dem keine Default-Datei wie z.B. index.htm liegt) einstellen. Sie können automatische Weiterleitungen einstellen oder eigene Regelungen für den Fall von HTTP-Fehlermeldungen schaffen. Sie können sogar abhängig von bestimmten Bedingungen alternative Inhalte anbieten, beispielsweise Webseiten mit unterschiedlichen Landessprachen abhängig von der Sprache des benutzten Web-Browsers - ohne PHP, ohne JavaScript.

Funktionsweise[Bearbeiten]

Dateien mit dem Namen .htaccess (das erste Zeichen ist ein Punkt) sind Bestandteile der Konfiguration des Webservers. Die Arbeitsweise des Webservers wird mit Hilfe einer (oder mehrerer) zentraler Konfigurationsdatei(en) definiert - die httpd.conf. Doch diese liegt bzw. liegen normalerweise innerhalb des Programmverzeichnisses des Webservers selbst, worauf Benutzer, die ein Web-Projekt verwalten, in aller Regel keinen Zugriff erhalten. Der Server-Administrator legt in dieser zentralen Konfiguration fest, welche Berechtigungen er welchen Benutzern oder auch welchen Webangeboten (virtuellen Hosts) zugestehen möchte. Nur dann, wenn ein Benutzer das Recht erhalten soll, die Vorgaben aus der zentralen Konfiguration zu überschreiben und individuell neu festzulegen, wird ihm die Nutzung von .htaccess-Dateien erlaubt. .htaccess-Dateien kann er dann in dem Verzeichnisbereich anlegen und bearbeiten, in dem sein Web-Angebot liegt. Dort, wo Sie Ihre HTML-Dateien, Grafikdateien usw. betreuen, können Sie also auch .htaccess-Dateien ablegen, falls Ihr Provider Ihnen diese Möglichkeit einräumt. Der Einsatz von .htaccess in Apache bedeutet, dass der Webserver bei jedem einzelnen Seitenzugriff vom angeforderten Dokument aus rekursiv sämtliche Verzeichnisse überprüfen muss, ob irgendwo eine solche Datei liegt. Und diese Information darf er nicht zwischenspeichern - denn die von .htaccess-Dateien konfigurierten Servereinstellungen sollen unmittelbar in demselben Moment gültig sein, in dem die .htaccess-Datei existiert, ohne Server-Neustart. Die Dezentralisierung der Konfiguration kostet also auch etwas Rechnerleistung.

Wie heißt eigentlich die .htaccess-Datei?[Bearbeiten]

Ganz allgemein gesagt: So, wie der Webmaster sie in der Direktive AccessFileName genannt hat. Vielleicht ist es gar nicht erwünscht, dass der Name einer so wichtigen Datei mit einem Punkt beginnt, also bei bestimmten Verzeichnislisten auf UNIX-Servern ggf. gar nicht angezeigt wird, wenn man etwa beim UNIX-Kommando ls nicht explizit den Operand -a angibt (wie das manche FTP-Clients tun).

.htaccess ist lediglich der voreingestellte Defaultwert in der Apache-Konfiguration.

Dass der Name .htaccess mit einem Punkt beginnt, ist eine Tradition aus der Unix-Welt. Dort beginnen viele verzeichnisspezifische Konfigurationsdateien mit einem Punkt, wodurch sie als „versteckt“ gekennzeichnet werden.

Setzen Sie zur Verwaltung Ihres Webangebots einen grafischen FTP-Client ein, kann es Ihnen daher passieren, dass eine .htaccess-Datei, die Sie gerade hochgeladen haben, plötzlich nicht mehr zu existieren scheint.

Geht das auch auf meiner Homepage?[Bearbeiten]

Das kommt auf die Konfiguration des Webservers an.

Das Konzept von .htaccess bedeutet, dass der Webmaster einen Teil seiner Kontrollmöglichkeiten an einen Benutzer abtritt. Bei den Massenanbietern von Homepages ist generell kaum zu erwarten, dass sie dazu bereit sind - und sei es nur aus Angst, einem Benutzer versehentlich das Recht zu geben, etwas zu tun, was ihren Betrieb mit tausenden von Homepages lahmlegen könnte.

Der Webmaster müsste auf jeden Fall wissen, was er tut - oder er müsste dem Anwender vertrauen. Deshalb wird eine Fähigkeit wie .htaccess vermutlich nur in den etwas teureren Paketen an Web-Speicher enthalten sein - was schade ist, denn wenn man das als Webmaster einmal richtig eingerichtet hat, könnten tausende von Benutzern davon profitieren.

Da bei bestimmten Einstellungen der Server-Konfiguration automatisch .htaccess-Dateien in übergeordneten Verzeichnissen mit geprüft werden müssen, könnte das Ganze bei wirklich hohen Zugriffszahlen auch eine Performance-Frage werden. Auch hier ist der Server für den Massenbetrieb der wahrscheinlichste Kandidat dafür, so eine Fähigkeit nicht anzubieten.

Falls der Provider tatsächlich einen solchen Service anbietet, dann sollte er auch angeben, welche der vielen features von .htaccess er freigeschaltet hat.

Abschließend ist ggf. noch zu beachten, dass der Name .htaccess in der Konfiguration des Webservers einstellbar ist. Im Zweifelsfalle also den Provider nach dem Namen der Datei fragen.

erste Schritte[Bearbeiten]

.htaccess-Dateien sind reine Textdateien, die mit einem Texteditor bearbeitet werden können. Mit einem SSH-Zugang können Sie solche Dateien direkt auf dem Server erstellen und bearbeiten, indem Sie dort einen geeigneten Texteditor aufrufen (auf Unix-Systemen z.B. den vi-Editor).

Wenn Sie nur FTP-Zugang zu dem Server-Rechner haben, können Sie eine solche Datei auf Ihrem lokalen PC mit einem Texteditor erstellen und dann hochladen. Auf einem Windows-System dürfen Sie allerdings solche Dateinamen, die mit einem Punkt beginnen, nicht unmittelbar vergeben, da Windows den Punkt anders versteht. Sie müssen in Ihrem Texteditor die Option "Speichern unter" wählen und darauf achten, dass der Editor nicht selbständig aus diesem Namen den Dateinamen .htaccess.txt macht.

Achtung!

Der Webserver ist (im Vergleich mit einem fehlertoleranten Browser) sehr empfindlich in Bezug auf die Syntax und deren korrekte Schreibweise. Der kleinste Fehler führt in der Regel zu einem Server Error 500.
  • Speichern Sie vor Ihren ersten Schritten ein Backup der bestehenden .htaccess-Datei. So können Sie mit der Originaldatei jederzeit den ursprünglichen Zustand wieder herstellen.
  • Testen Sie nach jeder Änderung an der .htaccess Datei, ob die Webseite noch aufgerufen werden kann, da diese Fehler nicht protokolliert werden.

.htaccess-Dateien gelten stets für das Verzeichnis, in dem sie abgespeichert werden, sowie für alle Unterverzeichnisse davon und für deren Unterverzeichnisse. Wenn Sie in einem der Unterverzeichnisse andere Regelungen wünschen, müssen Sie dort wiederum eine .htaccess-Datei ablegen. Die Angaben der jeweils aktuellen Datei überschreiben die Angaben von .htaccess-Dateien aus darüberliegenden Verzeichnissen.