.htaccess: Unterschied zwischen den Versionen
(Von der alten Website übernommen.) |
K (Seite kategorisiert) |
||
Zeile 1: | Zeile 1: | ||
{{Baustelle}} | {{Baustelle}} | ||
[[Kategorie:HSDoku]] | |||
[[Kategorie:WWW]] | |||
In der Datei <code>.htaccess</code>, die man in seine Dokument-Verzeichnisse unter den Domains (z.B unter subs/www oder ein tieferes Unterverzeichnis) legt, kann man Anweisungen für den Webserver hinterlegen. Damit kann man beispielsweise dem Webserver sagen, welches Modul für bestimmte Dateien (oder bestimmte Datei-Endungen) benutzt werden soll, wohin Dokumente verschoben worden sind, oder auch, wer Zugriff auf die Dateien hat. | In der Datei <code>.htaccess</code>, die man in seine Dokument-Verzeichnisse unter den Domains (z.B unter subs/www oder ein tieferes Unterverzeichnis) legt, kann man Anweisungen für den Webserver hinterlegen. Damit kann man beispielsweise dem Webserver sagen, welches Modul für bestimmte Dateien (oder bestimmte Datei-Endungen) benutzt werden soll, wohin Dokumente verschoben worden sind, oder auch, wer Zugriff auf die Dateien hat. |
Version vom 17. März 2009, 22:45 Uhr
Diese Seite muss überarbeitet werden
Diese Seite wurde als Baustelle gekennzeichnet, weil sie überarbeitet werden muss. Eine Begründung dafür findest du auf der Diskussionsseite. Bitte hilf mit, diese Seite zu verbessern!In der Datei .htaccess
, die man in seine Dokument-Verzeichnisse unter den Domains (z.B unter subs/www oder ein tieferes Unterverzeichnis) legt, kann man Anweisungen für den Webserver hinterlegen. Damit kann man beispielsweise dem Webserver sagen, welches Modul für bestimmte Dateien (oder bestimmte Datei-Endungen) benutzt werden soll, wohin Dokumente verschoben worden sind, oder auch, wer Zugriff auf die Dateien hat.
Passwortschutz für Dateien
Zunächst wollen wir den Zugriff auf ein Unterverzeichnis unserer Beispiel-Domain per .htaccess einschränken. Dazu legen wir zunächst eine Passwort-Datei an. Am einfachsten lässt sich diese spezielle Passwort-Datei in einer Shell anlegen. Wir legen sie in das etc-Verzeichnis der Domain:
xyz00-doms@hopi$ cd ~/doms/example.com/etc xyz00-doms@hopi$ htpasswd -c .htpasswd peter New password: ***** Re-type new password: ***** xyz00-doms@hopi$
Beim ersten User, hier peter wird das Programm htpasswd mit der Option -c (create) aufgerufen, aber auch wirklich nur beim ersten mal, da sonst die Datei .htpasswd neu erzeugt werden würde und vorherige Einträge damit gelöscht wären.
Sollte es beim Versuch, die Datei anzulegen, zu der Fehlermeldung kommando htpasswd nicht bekannt kommen, dann müssen wir zunächst den Befehl lokalisieren und mit dem richtigen Pfad neu aufrufen:
xyz00-doms@hopi$ locate htpasswd /usr/sbin/htpasswd xyz00-doms@hopi$ /usr/sbin/htpasswd -c .htpasswd peter
Beim zweiten User erfolgt der Aufruf dann ohne die Option -c:
xyz00-doms@hopi$ htpasswd .htpasswd petra New password: ***** Re-type new password: ***** xyz00-doms@hopi$
Die Sternchen * stehen selbstverständlich für das jeweilige Passwort, welches dem User zugeordnet werden soll.
Diese Datei könnten wir auch einfach mit scp/pscp oder FTP hochladen, dabei stellt sich dann jedoch die Frage, wie wir sie erzeugen. Auf den meisten Windows-Systemen dürfte kein htpasswd-Kommando verfügbar sein. Für diese Fälle haben wir eine online-Version zur Verfügung gestellt: http://www.is4u.de/cgi-bin/mk-htpasswd.cgi ? die Ausgabe einfach mit Copy&Paste in eine Datei kopieren und diese hochladen.
Die so angelegte Passwort-Datei kann nun von einer oder mehreren .htaccess-Dateien verwendet werden. Dazu begeben wir uns in das zu schützende Verzeichnis und legen dort eine Datei .htaccess an. Dies kann wieder per Upload oder in einer Shell geschehen. Die Datei kann beispielsweise so aussehen:
order allow,deny allow from all require valid-user Authname edit Authtype Basic AuthUserFile /home/doms/example.com/etc/.htpasswd
Die letzte Zeile verweist natürlich auf die von uns angelegte .htpasswd.
Verzeichnislisting ausschalten
Ruft ein Nutzer ein Verzeichnis auf, z.B. www.example.com/verzeichnis, so wird normalerweise die sich darin befindliche index.html als Standard aufgerufen. Gibt es eine solche Datei nicht, wird der gesamte Inhalt des Verzeichnisses gelistet.
Das kann ein Sicherheitsproblem sein. Mit der Einstellung IndexIgnore lässt sich das für die gesamte Website, für die die .htaccess gilt, ausschalten.