Webserver · 4 min read · Jan 04, 2026
.htaccess-basierte Authentifizierung in Unterverzeichnissen
.htaccess-basierte Authentifizierung in Unterverzeichnissen
Autor: Nayyar Ahmad
Kontakt: nayyares AT gmail DOT com
Homepage: www.cbtcandy.org
Widmung: An Baji, für all die Bemühungen, die sie für mich gemacht hat.
Vorwort:
.htaccess wird verwendet, um die Konfiguration pro Verzeichnis zu ändern. Diese Datei kann eine oder mehrere Direktiven enthalten, die auf das Verzeichnis angewendet werden, das die .htaccess-Datei enthält.
.htaccess ist der gebräuchliche Name dieser Konfigurationsänderungsdatei. Sie können diesen Standardnamen ändern, indem Sie den Parameter AccessFileName in der Apache-Konfigurationsdatei ändern. d.h.
AccessFileName .anynameIn diesem Howto werde ich ein Dummy-Szenario von zwei parallelen Unterverzeichnissen anlegen und die Passwortauthentifizierung für beide implementieren. Das bedeutet, dass nur die Benutzer auf diese Verzeichnisse zugreifen können, die den richtigen Benutzernamen und das richtige Passwort haben.
Also geht’s los :)
Hier gehe ich davon aus, dass Ihr DocumentRoot-Verzeichnis /var/www/html ist, aber wenn Sie eine VirtualHost-Konfiguration haben oder Apache in einem anderen Root-Verzeichnis konfiguriert ist, können Sie dies entsprechend Ihrer Situation anpassen.
Hinweis: Ich werde zwei Dummy-Namen für diese Verzeichnisse als test-dir1 und test-dir2 verwenden.
1 Verzeichnis erstellen:
$ cd /var/www/html$ mkdir test-dir1$ mkdir test-dir22 Test-HTML-Datei erstellen:
Erstellen einer HTML-Datei im ersten Verzeichnis.
$ cd /var/www/html/test-dir1$ cat > index.htm| TESTSEITE IN TEST-DIR1. |
Erstellen einer HTML-Datei im zweiten Verzeichnis.
$ cd /var/www/html/test-dir2$ cat > index.htm| TESTSEITE IN TEST-DIR2. |
3 Testseiten durchsuchen:
Jetzt können Sie die Seiten durchsuchen und testen, ob sie verfügbar sind, indem Sie einen Webbrowser öffnen. Ich mag Firefox (weil er rockt :) ) und tippe:
Dies zeigt die Testseite des ersten Verzeichnisses an, und
zeigt die zweite Testseite in test-dir2 an.
Wenn Sie beide Seiten sehen können, bedeutet das, dass Sie fast bereit sind, .htaccess zu rocken.
4 .htaccess-Datei erstellen:
$ cd /var/www/html/test-dir1$ vi .htaccessSchreiben Sie die folgenden Zeilen in diese Datei:
| AuthName "Nur autorisierte Benutzer." AuthType Basic AuthUserFile /etc/httpd/conf/.htpasswd require user testusr |
Jetzt werde ich erklären, welche magischen Zeilen wir in diese Datei geschrieben haben:
Der AuthName-Parameter definiert einfach den Titel des Passwort-Eingabefelds, wenn sich der Benutzer anmeldet, während der AuthType dem Server mitteilt, welche Art von Verarbeitung verwendet wird, und Basic ist die gebräuchlichste und für fast jeden Zweck völlig ausreichend. AuthUserFile wird verwendet, um den Speicherort der .htpasswd-Datei zu definieren. Diese Datei enthält das Passwort des Benutzers, der in der .htaccess-Datei authentifiziert werden soll. require user wird verwendet, um den vertrauenswürdigen Benutzer zu identifizieren. Wenn es mehr als einen vertrauenswürdigen Benutzer gibt, können Sie deren Namen in einer durch Leerzeichen getrennten Liste angeben.
Um test-dir2 durch .htaccess zu schützen, müssen wir es von test-dir1 nach test-dir2 kopieren ** mit dem folgenden Befehl:
$ cp /var/www/html/test-dir1/.htaccess /var/www/html/test-dir2/5 Benutzer erstellen:
Hier werden wir einen Testbenutzer erstellen, um unsere .htaccess zu überprüfen:)
$ adduser testusr$ passwd testusr6 Apache über Benutzer informieren:
Jetzt müssen wir Apache über den Benutzer und sein Passwort informieren. Aber bevor wir zu diesem Schritt übergehen, liegt es an mir, den Unterschied zwischen RPM- und Quellinstallation von Apache zu erklären. :) Wenn Sie Apache von RPM installiert haben, werden alle zugehörigen Befehle in Ihrem /usr/local/bin installiert, also keine Probleme, Sie können den htpasswd-Befehl überall in Ihrem System verwenden. Wenn Sie Apache jedoch aus dem Quellcode installiert haben, müssen Sie das Apache-Bin-Verzeichnis finden, um den htpasswd-Befehl auszuführen. In diesem HowTo werde ich beide Wege angeben, hier ist es:
$ htpasswd -c /etc/httpd/conf/.htpasswd testusrDer obige Befehl funktioniert, wenn Sie htpasswd in Ihrem /usr/local/bin haben, was der Fall ist, wenn Sie Apache von RPM installieren. /etc/httpd/conf/.htpasswd ist der Speicherort der Datei, die das Passwort des authentifizierten/vertrauten Benutzers enthält.
ODER
$ cd /apache/bin/$ ./htpasswd -c /etc/httpd/conf/.htpasswd testusrDie obigen Befehle sind korrekt, wenn Sie Apache aus den Quellen installiert haben. $ cd /apache/bin kann entsprechend Ihrem System angepasst werden, da Sie es möglicherweise woanders installiert haben.
7 .htpasswd-Dateiberechtigung:
Wir müssen die Dateiberechtigung der .htpasswd-Datei festlegen und den Apache-Benutzer zum Eigentümer dieser Datei machen.
$ chown apache.apache /etc/httpd/conf/.htpasswd 8 httpd.conf bearbeiten:
Jetzt müssen wir die httpd.conf bearbeiten, da Apache über .htaccess informiert werden muss. Hier ändern wir AllowOverride All | none in AuthConfig. Jetzt gibt es zwei Fälle: einer, wenn Sie nur eine Website hosten, und der andere, wenn Sie VirtualHost haben. Hier ist der erste Fall:
In diesem Fall haben wir nur einen Directory-Tag in der httpd.conf-Datei, da wir nur eine Website hosten. Daher bearbeiten wir den
| |
Jetzt für den zweiten Fall, wenn wir mehrere Websites hosten, d.h. VirtualHost:
| |
9 Apache neu starten:
Jetzt müssen Sie den Apache-Server neu starten, um die Konfiguration neu zu laden.
Für RPM-basierte Systeme:
$ service httpd restartFür quellbasierte Systeme, passen Sie den Pfad zum Apache-Bin-Verzeichnis an.
$ /apache/bin/apachectl restart10 Testen:
Jetzt ist alles bereit zum Testen. Öffnen Sie erneut Ihren bevorzugten Browser und versuchen Sie, die folgenden Links zu öffnen:
und
Hinweis: Wenn Sie diese Links durchsuchen, werden Sie nach dem Benutzernamen und dem Passwort gefragt. Sobald Sie diese bereitstellen, gelangen Sie zur Testseite. Aber sobald Sie sich in einem Verzeichnis anmelden, werden Sie nicht erneut nach dem Benutzernamen und dem Passwort für das andere Testverzeichnis gefragt, da Apache nicht wiederholt nach dem Benutzernamen und dem Passwort für gleichwertige Verzeichnisse oder Unterverzeichnisse fragt. Sobald Sie authentifiziert sind, sind die untergeordneten und parallelen Verzeichnisse zur Nutzung geöffnet. Wenn Sie sie jedoch trotzdem überprüfen möchten, verwenden Sie einen textbasierten Browser wie Links, das ist es, was ich zur Überprüfung benutze.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.