我正在尝试为各种客户端设置一个 webdav 网站来上传/下载文件。但是我不希望每个客户都看到其他客户的数据。每个客户端都使用 SSL 客户端证书进行身份验证,所以我想将它们 chroot 到他们自己的目录树中。
例如:
- https://example.com/webdav/upload
- 应该映射到文件系统位置
- /somewebroot/webdav/SSL_USERNAME/上传
我认为我可以为此使用 mod_rewrite,但我的规则似乎让我进入了无限重定向循环。有什么想法吗?
Alias /webdav /somewebroot/webdav
<Directory /somewebroot/webdav>
RewriteEngine On
RewriteBase /webdav
RewriteCond %{SSL:SSL_CLIENT_S_DN_CN} ADMIN #The admin does not get chrooted
RewriteRule .* - [L]
RewriteCond %{REQUEST_URI} !^%{SSL:SSL_CLIENT_S_DN_CN}/(.*)
RewriteRule ^(.*) %{SSL:SSL_CLIENT_S_DN_CN}/$1 [L]
</Directory>