Я пытаюсь переписать URL-адрес в соответствии с аутентифицированным пользователем. Но REMOTE_USER всегда пуст. Аутентификация работает.
Я здесь очень озадачен ... я что-то упускаю?
RewriteEngine On
RewriteLog "/var/log/httpd/rewrite.log"
RewriteLogLevel 3
<Directory /home/storage>
Order Allow,Deny
Allow from all
Dav On
Options Indexes
AllowOverride None
AuthName "Webdav: insert your username and password"
AuthType Basic
AuthBasicProvider ldap
AuthLDAPBindDN cn=adsyncldapagent,ou=Service,ou=AdminUsers,ou=ITS,dc=xx,dc=xx
AuthLDAPBindPassword xxxx
AuthzLDAPAuthoritative On
AuthLDAPURL "ldap://xxxx/ou=Staff,ou=AUM,dc=xx,dc=xx?sAMAccountName?sub"
<LimitExcept GET POST>
Require valid-user
</LimitExcept>
</Directory>
RewriteCond %{REQUEST_URI} ^/webdav
RewriteRule . /home/storage/%{LA-U:REMOTE_USER}p
Это журнал перезаписи:
::1 - - [07/Mar/2013:20:26:17 +0100] [localhost/sid#7faeae695fe8][rid#7faeae766368/subreq] (2) init rewrite engine with requested uri /webdav
::1 - - [07/Mar/2013:20:26:17 +0100] [localhost/sid#7faeae695fe8][rid#7faeae766368/subreq] (3) applying pattern '.' to uri '/webdav'
::1 - - [07/Mar/2013:20:26:17 +0100] [localhost/sid#7faeae695fe8][rid#7faeae766368/subreq] (2) rewrite '/webdav' -> '/home/storage/p'
У вас не настроена аутентификация для /webdav
, так что в то время это RewriteRule
срабатывает там является нет REMOTE_USER
. Тебе нужно иметь /webdav
защищен той же конфигурацией аутентификации, которая защищает /home/storage
.
Что-то вроде этого:
<Directory /home/storage>
AuthName "WebDAV"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative On
AuthLDAPURL "ldap://xxxx/ou=Staff,ou=AUM,dc=xx,dc=xx?sAMAccountName?sub"
</Directory>
<Location /webdav/>
AuthName "WebDAV"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative On
AuthLDAPURL "ldap://xxxx/ou=Staff,ou=AUM,dc=xx,dc=xx?sAMAccountName?sub"
</Location>
RewriteRule ^/webdav/(.*) /var/www/webdav/%{LA-U:REMOTE_USER}/$1