commit | author | age
|
261280
|
1 |
# htaccess {#kap-htaccess} |
JUH |
2 |
|
2c93a1
|
3 |
Das Verhalten des Apache Webservers lässt sich durch `.htaccess`-Dateien im Verzeichnis einer Domain steuern. |
JUH |
4 |
Die zentrale Konfiguration lässt sich damit für einzelne Verzeichnisse überschreiben. |
|
5 |
Eine `.htaccess`-Datei wirkt sich auf das Verzeichnis aus, in dem sie sich befindet, und auf alle Unterverzeichnisse. |
|
6 |
Konfigurationen, die es ermöglichen, dass der Webserver Rechte anderer User erhalten kann, sind dabei nicht erlaubt. |
261280
|
7 |
|
JUH |
8 |
## Bereiche einer Website mit Passwort schützen |
|
9 |
|
2c93a1
|
10 |
Ein typischer Anwendungsfall ist der Schutz eines bestimmten Verzeichnisses mit einem Passwort. |
JUH |
11 |
Dazu muss zunächst eine Passwort-Datei mit dem Namen `.htpasswd` im `etc`-Verzeichnis der Domain angelegt werden. |
|
12 |
Dies erfolgt mit dem Programm `htpasswd`. |
261280
|
13 |
|
JUH |
14 |
``` console |
|
15 |
xyz00-doms@h97:~$ cd ~/doms/hs-example.de/etc |
|
16 |
xyz00-doms@h97:~$ htpasswd -c .htpasswd peter |
|
17 |
New password: ***** |
|
18 |
Re-type new password: ***** |
|
19 |
xyz00-doms@h97:~$ |
|
20 |
``` |
|
21 |
|
2c93a1
|
22 |
Statt der Sternchen geben Sie das gewünschte Passwort ein. |
JUH |
23 |
Es wird verschlüsselt gespeichert. |
|
24 |
Die Option `-c` wird nur bei der ersten Anlage der Passwort-Datei gesetzt. |
|
25 |
Wenn ein Passwort für einen zweiten Benutzer eingerichtet wird, muss `htpasswd` ohne die Option aufgerufen werden, da sonst die Datei komplett überschrieben würde und das Passwort für den ersten Benutzer verloren ginge. |
261280
|
26 |
|
JUH |
27 |
``` console |
|
28 |
xyz00-doms@h97:~$ cd ~/doms/hs-example.de/etc |
|
29 |
xyz00-doms@h97:~$ htpasswd .htpasswd paula |
|
30 |
New password: ***** |
|
31 |
Re-type new password: ***** |
|
32 |
xyz00-doms@h97:~$ |
|
33 |
``` |
|
34 |
|
2c93a1
|
35 |
Diese Passwort-Datei kann nun für beliebige Verzeichnisse der Domain genutzt werden. |
JUH |
36 |
Um ein Verzeichnis mit einem Passwort zu schützen, legen Sie dazu einfach eine `htaccess`-Datei mit folgendem Inhalt in dem betreffenden Verzeichnis an. |
261280
|
37 |
|
JUH |
38 |
``` text |
|
39 |
order allow,deny |
|
40 |
allow from all |
|
41 |
require valid-user |
|
42 |
Authname "Privater Bereich. Bitte melden Sie sich an." |
|
43 |
Authtype Basic |
|
44 |
AuthUserFile /home/doms/hs-example.de/etc/.htpasswd |
|
45 |
``` |
|
46 |
|
2c93a1
|
47 |
Beim Aufruf des Bereichs im Webbrowser wird der Besucher aufgefordert, den Benutzernamen (in unserem Beispiel `peter` oder `paula`) sowie das jeweilige Passwort einzugeben. |
261280
|
48 |
|
JUH |
49 |
## Weiterleitungen (Redirects) |
|
50 |
|
2c93a1
|
51 |
Ein anderer typischer Anwendungsfall sind Redirects. |
JUH |
52 |
Weiterleitungen werden benötigt, wenn alte Inhalte verschoben werden, sodass sie unter einer neuen Webadresse erreichbar sind. |
|
53 |
Weiterleitungen verhindern, dass Links, die von anderen Webseiten auf den verschobenen Inhalt gesetzt wurden, ins Leere gehen. |
|
54 |
Dazu können Sie eine `htaccess`-Datei im obersten Verzeichnis anlegen, in dem Sie alle Weiterleitungen aufführen. |
261280
|
55 |
|
JUH |
56 |
``` text |
|
57 |
Redirect permanent /alte-url-1/ /neue-url-1/ |
|
58 |
Redirect permanent /alte-url-2/ /neue-url-2/ |
|
59 |
Redirect permanent /alte-url-3/ /neue-url-3/ |
|
60 |
``` |
|
61 |
|
|
62 |
## Eigene 404-Datei festlegen |
|
63 |
|
2c93a1
|
64 |
Wenn ein Benutzer auf Ihrer Website eine ungültige Webadresse aufruft, zeigt der Browser eine 404-Meldung an. |
JUH |
65 |
Sie können diese Standardanzeige anpassen, indem Sie den Webserver anweisen, bei einem 404-Fehler eine besondere Webseite anzuzeigen. |
261280
|
66 |
|
JUH |
67 |
``` text |
|
68 |
ErrorDocument 403 /404.html |
|
69 |
``` |
|
70 |
|
2c93a1
|
71 |
Weitere Möglichkeiten, das Verhalten des Webservers über `htaccess`-Dateien zu steuern, finden Sie in der [Apache-Dokumentation](https://httpd.apache.org/docs/2.4/). |
JUH |
72 |
Eine deutschsprachige Anleitung und Beispielkonfigurationen finden Sie unter: <https://wiki.selfhtml.org/wiki/Webserver/htaccess> |