Hallo!
irgendwie werde ich aus den ganzen .htaccess-Sachen immer nur "halbschlau", nie so richtig, auch in der Apache-Doku finde ich meist genau das nicht was ich gerade wissen will.
ich habe folgende Verzeichnisstruktur:
doc-root (öffentlich zugänglich)
|
+ admin (nur für User aus Gruppe "admin" zugänglich)
|
+ user (nur für User aus Gruppe "user" zugänglich)
soweit eigentlich ganz einfach, in die beiden Verzeichnisse je eine entsprechende .htaccess und es funktioniert prima.
Das Problem ist, ich habe im doc-root eine html-Datei mit 2 Links:
1. Link ins Verzeichnis "/admin"
2. Link ins Verzeichnis "/user"
Was ich jetzt gerne hätte, ist das wenn eine der Authentifizierungen nicht funktionioniert(401), dass der Anwender auf eine Datei im doc-root geleitet wird, halt in der .htaccess per
ErrorDocument 401 /request.php?error=401
Das Problem daran, die beiden .htaccess liegen im Unterverzeichnis, also müßte das heißen
ErrorDocument 401 ../request.php?error=401
aber das geht nicht, es wird einfach nicht auf besagte Seite geleitet, sondern auf eine Standardseite. Mit einem absoluten Pfad dachte ich könnte es klappen, halt absolut vom Dateisystem aus:
ErrorDocument 401 /www/bla/bla/request.php?error=401
Das geht genausowenig wie die vorherige Variante. Da mit aber im Kopf rumschwebt, das hier das root-Verzsichnis = dem doc-root des Apache sein muß, müßte ja die ursprüngliche Variante
ErrorDocument 401 /request.php?error=401
funktionieren, was aber genauso wenig geht.
Aber da gab es ja noch was mit <Directory>. Ich hatte mir überlegt, nur eine .htaccess in den doc-root zu legen, und hier die verschiedenen Auth-Bereiche mit <Directory> definieren. Das hätte den Vorteil, dass ich
ErrorDocument 401 /request.php?error=401
verwenden könnte. Das habe ich dann so gemacht:
<Directory /admin>
AuthType Basic
AuthName "Admin-Login"
AuthUserFile /www/bla/bla/passwd
AuthGroupFile /www/bla/bla/groups
Require group admin
</Directory>
Das ergibt einen 500er Fehler, ohne weitere Angabe in der Error-Log. Dann habe ich noch den absoluten Pfad an Stelle von "/admin" versucht, also "/www/bla/bla/admin" probiert, mit selbem Ergebnis. Ich kann es einfach nicht verstehen. Was mache ich falsch? Das muß doch _beides_ irgendwie gehen, aber wie? Bin dankbar für jeden Tipp oder Link!
Viele Grüße
Andreas