我正试图为我们的用户提供一个Apache WebDav空间,用于存储他们的日历(.ics)文件。 我已经得到了Dav和LDAPauthentication。 但我没有把用户监禁到一些子目录。 毕竟我不希望他们访问彼此的日历文件。
例如:假设用户johndoelogin,那么我想把他的“ / ”path映射到磁盘上的/ var / www / users / johndoe 。 这样每个用户都有自己的目录。
我到目前为止所尝试的:
UserDir / var / www / users / * /
但似乎这个目录只是设置/〜johndoe /请求的path,这是不是我想要的。
RewriteRule ^ / / users /%{REMOTE_USER} [R]
失败。 而这可能只是改写了我不想要的path。
AliasMatch ^ / / var / www / users /%{REMOTE_USER} /
这应该将path映射到磁盘上的目录,但%{REMOTE_USER}不会扩展。
是可以监狱login用户的一些子目录? 提前致谢。
如果您愿意使用目录前缀而不是“/”,则可以使用如下所示的内容:
# Let's setup WebDAV first <Directory /var/lib/storage> Dav On Options Indexes AllowOverride None </Directory> # Now we'll set up the user area mapping RewriteCond %{REQUEST_URI} ^/storage/ RewriteRule ^/storage/(.*?)$ /var/lib/storage/user/%{LA-U:REMOTE_USER}/$1 [L]
而且,相同的用户目录可以使用/〜user /语法以只读方式访问
# Public area can be accessed as https://server/~user/ RewriteCond %{REQUEST_URI} ^/~ RewriteCond %{REQUEST_METHOD} ^(GET|POST)$ RewriteRule ^/~([^/]+)/?(.*) /var/lib/storage/user/$1/$2 [L]
因人而异