Sven Rautenberg: mod_Rewrite übertirfft alle ?

Beitrag lesen

Yo!

AuthType Basic
AuthName "USER-LOGIN"
AuthUserFile /homepages/5/d38530746/htdocs/djwoelk/login/.htpasswd
require user djwoelk
require user webmaster
RewriteEngine on
RewriteCond (%{REMOTE_USER}) ^.+$
RewriteRule ^/login/$ /login/%1/ [L,R]
ErrorDocument 404 http://www.plascha.de/djwoelk/what.htm#3

Vielleicht sollten wir mal etwas an der RewriteRule rumändern:
RewriteRule ^/login/([^/]*)$ /login/%1/$1 [L,R]

Hinter dem /login/ kann irgendein vorhergehende Modul wie z.B. mod_index (das ist für die Auslieferung der Index-Datei zuständig) ja z.B. schon "index.html" eingetragen haben, auch wenn du im Browser nur "/login/" stehen hast. Insofern sollte dieser Fall abgefangen werden: Wenn hinter "/login/" noch was steht, was keinen "/" enthält, dann wird dieses eben gefunden und hinter den Usernamen wieder angefügt.

Teste mal. Und ansonsten probiere es mit Logfiles. RewriteLog und RewriteLogLevel sind deine Freunde, und deren Doku steht hier: http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteLog Das sind vermutlich die am leichtesten zu verstehenden Befehle, die mod_rewrite kennt. :)

Wenn ich mir deinen .htpasswd-Pfad so ansehe, sollte es so gehen:
RewriteLog /homepages/5/d38530746/htdocs/djwoelk/login/rewrite.log
RewriteLogLevel 3 (zwischen 0 und 9 ist erlaubt)

Ich habe keine Ahnung, was bei Level 3 rauskommt - sieh's dir einfach mal an. Und lege vielleicht vorher die Datei rewrite.log an und gibt Schreibrechte an alle: chmod 666. Sonst kann es sein, daß der Webserver die unter seiner ID anlegt und du nicht mehr rankommst oder sie nicht löschen kannst.

- Sven Rautenberg