Marc O. Sandlus
2023-03-31 40388615e627dc769b47b0bc46c5d0aafb419c3e
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>