# Komplexer Verzeichnisschutz per .htaccess



## helkies (20. Juni 2005)

Ich hoffe mir kann hier geholfen werden. Habe schon so viele Foren durchforstet.

Problem: Ich habe *einen* Login Button auf meiner Seite. Ich habe *4* Unterverzeichnisse, die es mit .htaccess zu schützen gilt. 
Bsp. privat, freunde, fotos, downloads.
Wenn sich ein Freund jetzt einloggt (er hat nur Passwort und Username für den Bereich "freunde"), soll die index.html im Verzeichnis freunde geöffnet werden, usw. 

Ist es überhaupt möglich, mit der .htaccess, aufgrund der Eingabe eines korrekten Passwords und Usernamen zu steuern welcher Ordner zuständig ist.

Ich bin echt so langsam am verzweifeln


----------



## michel_tr (20. Juni 2005)

Ich habe gerade nochmal die Apache Dokumentation überflogen... und ich sehe keine Möglichkeit.

Damit das was du willst funktioniert, müsste es etwas ähnliches wie mod_alias geben. Nur eben mit der Möglichkeit auf den übermittelten Benutzernamen zu reagieren... und das gibt es (soviel ich weiß) nicht.


Um dein Ziel zu erreichen, kommst du wohl um PHP, ASP... nicht herrum.


----------



## Neurodeamon (21. Juni 2005)

Du könntst allerdings mit einer Scriptsprache Dein Problem lösen. Mit PHP, ASP oder Perl wäre das wohl kein großes Problem.


----------



## Sven Mintel (21. Juni 2005)

Du könntest per RewriteCond je nach *%{REMOTE_USER}* (Username) auf das jeweilige Verzeichnis umleiten.


----------



## helkies (21. Juni 2005)

und wie funktioniert das mit dem %{REMOTE_USER} (Username) auf das jeweilige Verzeichnis umleiten?

Hört sich vielversprechend an? ist das schwer umzusetzen?


----------



## Sven Mintel (22. Juni 2005)

Nö, das ist eigentlich nicht schwierig.
Zuerst machst du den normalen Passwortschutz.

Dann die Rewrite-Rules für die einzelnen Benutzer... 
vor dem "Rewriten" wird als Bedingung geprüft, welcher Benutzer es ist, 
und ob er sich nicht schon in seinem Verzeichnis befindet


```
AuthName "Hallo"
AuthType Basic
AuthUserFile /blablubb/.htpasswd
require valid-user

RewriteEngine on

# Benutzer "user1" in verzeichnis "userverzeichnis1" umleiten

#Ermitteln, ob es "user1" ist
RewriteCond %{REMOTE_USER}   ^user1$
#ermitteln, ob er nicht schon in seinem Verzeichnis ist
RewriteCond %{REQUEST_URI}   !^/userverzeichnis1/
#Umleiten
RewriteRule ^(.*)$     /userverzeichnis1/ [R]


# Benutzer "angie","gerhard" und "joschka"in verzeichnis "freunde" umleiten

RewriteCond %{REMOTE_USER}   ^(angie|gerhard|joschka)$
RewriteCond %{REQUEST_URI}   !^/freunde/
RewriteRule ^(.*)$     /freunde/ [R]
```


----------



## helkies (24. Juni 2005)

Sorry, bin erst jetzt zum weitermachen gekommen.

Ich habe das alles jetzt in die .htaccess kopiert und natürlich die Bezeichnungen angepasst. Aber ich habe irgendwo noch einen Fehler. Ich habe im selben Ordner die Datei .htpasswd in der 4 User und die verschlüsselten Passworte stehen. 
Bsp: 

Werner:INY8//m5KMwIc
Manfred:69gY8YPjQXeN6
Janine:INw2mPEH.owe2
Anke:INh6DHvyejvf2

ich bekomme immer nur die Meldung:
Forbidden
You don't have permission to access /verzeichnis/login/index.html on this server.

Ich hab mir das mit mehreren Usern und Passworten aus SelfHtml angesehen und die .htpasswd nach dem Muster gestrickt. Ich weiß nicht was ich falsch gemacht habe.


----------



## Sven Mintel (25. Juni 2005)

Auf welchem OS läuft der Server?
Stimmt der Pfad zur .htpasswd?
Poste bitte  mal die komplette .htaccess!


----------



## helkies (25. Juni 2005)

Das Betriebssystem ist Suse Linux.

Struktur:

.../freunde/login/conni1/
.../freunde/login/ulf1/
.../freunde/login/sandra1/
.../freunde/login/bernd1/

Die .htaccess und .htpasswd liegen im Ordner /login/ und die Verzeichnisse danach sollen
geschützt sein. 

Hier die .htaccess:
-----------------------------------------------------------------------------------------------------------------Anfang

AuthName "Bitte Eure Zugangsdaten eingeben"
AuthType Basic

AuthUserFile /home/www/htdocs/meinedomain.de/freunde/login//.htpasswd
require valid-user

RewriteEngine on
#-------------------------------------------------------
# Benutzer "conni" in verzeichnis "conni1" umleiten

#Ermitteln, ob es "conni" ist
RewriteCond %{REMOTE_USER}   ^conni$
#ermitteln, ob er nicht schon in seinem Verzeichnis ist
RewriteCond %{REQUEST_URI}   !^/conni1/
#Umleiten
RewriteRule ^(.*)$     /conni1/ [R]
#-------------------------------------------------------
# Benutzer "ulf" in verzeichnis "ulf1" umleiten

#Ermitteln, ob es "ulf" ist
RewriteCond %{REMOTE_USER}   ^ulf$
#ermitteln, ob er nicht schon in seinem Verzeichnis ist
RewriteCond %{REQUEST_URI}   !^/ulf1/
#Umleiten
RewriteRule ^(.*)$     /ulf1/ [R]
#-------------------------------------------------------
# Benutzer "sandra" in verzeichnis "sandra1" umleiten

#Ermitteln, ob es "sandra" ist
RewriteCond %{REMOTE_USER}   ^sandra$
#ermitteln, ob er nicht schon in seinem Verzeichnis ist
RewriteCond %{REQUEST_URI}   !^/sandra1/
#Umleiten
RewriteRule ^(.*)$     /sandra1/ [R]
#-------------------------------------------------------
# Benutzer "bernd" in verzeichnis "bernd1" umleiten

#Ermitteln, ob es "bernd" ist
RewriteCond %{REMOTE_USER}   ^bernd$
#ermitteln, ob er nicht schon in seinem Verzeichnis ist
RewriteCond %{REQUEST_URI}   !^/bernd1/
#Umleiten
RewriteRule ^(.*)$     /bernd1/ [R]

-----------------------------------------------------------------------------------------------------------------Ende

Übrigens vielen Dank für Deine bisherige Hilfe


----------



## Sven Mintel (25. Juni 2005)

Kommt überhaupt die Passwortabfrage?


----------



## helkies (25. Juni 2005)

Ja, die Passwortabfrage kommt. Und auch wenn ich das richtige Kennwort für den Benutzer eingebe kommt die Abfrage wieder.


----------



## Sven Mintel (26. Juni 2005)

Dann stimmt der Pfad zur .htpasswd nicht.

Probier mal 

AuthUserFile /freunde/login/.htpasswd

oder

AuthUserFile .htpasswd


----------



## helkies (26. Juni 2005)

ich habe jetzt in der .htaccess den Pfad auf:

AuthUserFile .htpasswd

geändert. Jetzt kommt wieder die Passwortabfrage, und nach 3 x eingeben:

"Authorization Required"

Was mache ich bloß verkehrt. Muß ich die Rechte für die Unterordner vielleicht noch ändern?


----------



## Sven Mintel (26. Juni 2005)

nö...anscheinend wird, wie bereits erwähnt, die .htpasswd nicht gefunden.... somit gibt auch keine Passwörter zum vergleichen->somit ist Zugríff unmöglich.
Probiere mal weiter mit dem Pfad herum...z.B. mit meinem ersten Vorschlag.


----------



## helkies (28. Juni 2005)

Ich habe mit den Pfaden alle Varianten probiert. Es kommt immer wieder die dreimalige Abfrage und anschließend "Authorization Required".

Ob mit den Passworten etwas nicht in Ordnung ist?


----------



## Sven Mintel (28. Juni 2005)

Ich hab grad mal bei SelfHTML reingeschaut....da scheint was nicht zu stimmen mit dem "PW-Generator".

Probier mal

```
test:PWtfMLkIDk5TQ
```
Benutzername:test
Passwort:user


----------



## helkies (28. Juni 2005)

Keine Chance.

Habe das Passwort der .htpasswd und den User der .htaccess hinzugefügt. Anschließend auch mit den Pfaden zur .htpasswd experimentiert.

Nach dreimaliger Eingabe des Paswortes kommt immer:

"Authorization Required".


----------



## Sven Mintel (28. Juni 2005)

Da kann ich dir dann irgendwie nicht weiterhelfen.... ohne Zugriff auf deinen Server lässt sich kaum herausbekommen, was da schiefläuft


----------



## helkies (28. Juni 2005)

Auf jeden Fall recht herzlichen Dank für Deine Mühe.


----------

