Problem bzw. Frage zu .htaccess

WetGun

Mitglied
Hi @ all,

ich habe da mal eine Frage zu .htaccess .
Ich möchte gern das von einer Webseite, nennen wir sie Login-Page, Kunden via .htaccess auf die für sie bestimmten Daten zugreifen können.

Beispiel:
Kunde X mit Passwort Y darf nur in Ordner Z aber nicht in Ordner Q.
Kunde P mit Passwort R darf nur in Ordner S aber nicht in Ordner Z.

Ist es denn möglich via eines Login-Buttons alle Kunden abzufragen und den Kunden dann nur in den für Ihn vorgesehenden Ordner zu leiten, ohne dass er die Möglichkeit hat, andere Kundendaten einzusehen? Ich hoffe ich hab das verständlich erklärt! :rolleyes:
Das möchte ich ohne PHP realisieren, da ich mich mit PHP nicht auskenne!

Vielen Dank im vorraus
 
Beim Apache sollte dies möglich sein.

Die Authentifizierung kann über htaccess/htpasswd etc. erfolgen, danach steht die Servervariable "REMOTE_USER" zur Verfügung, anhand derer man einen/mehrere User in sein Verzeichnis schicken(bzw.aus anderen ausschliessen kann).


BTW: Ich schieb die Frage mal ins Webserver-Forum ;)
 
Hi,

Könntest du mir bitte schreiben wie so etwas funktionieren kann? Da ich dein Posting nicht finde! Mit ner kleinen Erklärung dazu wär echt super :)

Gruss und Danke
 
Ich gehe mal davon aus, dass du bereits weisst, wie man mit .htaccess ein Verzeichnis schützt... wenn nicht, gibts bei SelfHTML eine Anleitung dazu.

Vorraussetzung:
serverseitig muss dass "rewriten" von Serveranfragen zugelassen sein.


Mein Beispiel:
Ich habe ein Verzeichnis "safe" im Dokumentenverzeichnis des Servers, darin befinden sich die Ordner A,B und C

Dieses Verzeichnis ist passwortgeschützt, ich habe die User anna,alfred,berti,beate,benno,christa,charlie angelegt...

Der Einfachheit halber darf jeder User in das Verzeichnis entsprechend seinem Anfangsbuchstaben.

Sobald sich ein User mit Benutzername/Passwort angemeldet hat, steht die bereits erwähnte Servervariable "REMOTE_USER" zur Verfügung, welche ich auslese, und jenachdem den User umleite.
Der diesbezügliche Teil der .htaccess sieht so aus:

Code:
RewriteEngine On

#Verzeichnis A
RewriteCond %{REMOTE_USER}   ^(anna|alfred)$
RewriteCond %{REQUEST_URI}   !^/safe/A
RewriteRule ^.*$ /safe/A  [L,R]

#Verzeichnis B
RewriteCond %{REMOTE_USER}   ^(berti|beate|benno)$
RewriteCond %{REQUEST_URI}   !^/safe/B
RewriteRule ^.*$ /safe/B  [L,R]

#Verzeichnis C
RewriteCond %{REMOTE_USER}   ^(christa|charlie)$
RewriteCond %{REQUEST_URI}   !^/safe/C
RewriteRule ^.*$ /safe/C  [L,R]

Die Umleitung ist jeweils von 2 Bedingungen abhängig:
  • welcher User
  • in welchem Verzeichnis befindet er sich

im Einzelnen(hier mal nur für Verzeichnis A, ist immer dasselbe):
Code:
RewriteCond %{REMOTE_USER}   ^(anna|alfred)$
mit %{REMOTE_USER} wird besagte Server-Variable angesprochen....
geprüft wird sie gegen einen regulären Ausdruck..., der alle zulässigen Usernamen für das Verzeichnis beinhaltet.

Ist diese Bedingung wahr, wird die 2. geprüft:
Code:
RewriteCond %{REQUEST_URI}   !^/safe/A
...%{REQUEST_URI} beinhaltet die beim Server angefragte URL. Diese wird, ebenfalls anhand eines regulären Ausdrucks dahingehend geprüft, ob sie nicht mit "/safe/Userverzeichnis" beginnt.
Ist dies der Fall, wird der User in dieses Verzeichnis umgeleitet:
Code:
RewriteRule ^.*$ /safe/A  [L,R]

Befindet sich ein User in "seinem" Verzeichnis, passiert garnix.

Testbeispiel(Passwort ist jeweils "tester")
 
Vielen Dank für die Super Erklärung! Ich werde das mal testen, da ich nicht weis, ob RewriteEngine auf meinem Server auf on oder off steht bzw. zur Verfügung steht!

Muss dieser Teil in die selbe .htaccess file in der auf die .htpasswd zu gewiesen wird, und ist es egal an welcher Stelle diese abfrage steht?

Vielen Dank
 
Zurück