Plone 4.0.4和WebDAV

时间:2011-03-21 20:34:29

标签: webdav plone

我一直在看

http://plone.org/documentation/kb/webdav   http://plone.org/documentation/kb/more-webdav

我可以使用尸体(在FreeBSD上)连接到1980端口。

我使用(ProxyPass和ProxyPassReverse)在Apache后面设置了一个简单的Plone设置。

到目前为止一切顺利。现在我希望Apache代理(或重写)WebDAV请求 WebDAV服务器。当使用Netdrive(或其他工具来映射文件浏览器中的驱动器)时,用户只能使用WebDAV(而不是root或其他成员文件夹)查看其个人“成员文件夹”。

如果有人能指导我在Apache VirtualHost中显示重写规则(不是我理解的ProxyPass)的简单教程,我会很高兴。

感谢。 Nikolaj G。

1 个答案:

答案 0 :(得分:4)

ProxyPass可以工作。我有一些网站使用ProxyPass,其他网站使用RewriteRule。 Zope VirtualHostMonster下的文档是另一个好地方。

重写就像这样简单:

<VirtualHost *:80>
    ServerName  webdav.example.ca
    ServerAlias somethingelse
    ServerAdmin email@example.ca

所以,我假设您将拥有DAV服务器的特定主机名 - 在本例中为webdav.example.ca。

    RewriteLogLevel 0
    RewriteEngine On

在打开它之前不能使用重写: - )

    RewriteRule ^(.*) http://localhost:1980/VirtualHostBase/http/webdav.example.ca:80/Plone/Members/VirtualHostRoot$1 [L,P]

VirtuaLHostBase 之前的部分是您的DAV服务器所在的实际主机/端口。下一部分 http / webdav.example.ca:80 描述了您希望用户使用的协议//:server:port Plone 将是您的Plone网站名称。 $ 1 与正则表达式(。*)匹配。

</VirtualHost>

测试它就像使用DAV服务器中的尸体一样简单。首先确保您可以访问:

http://localhost:1980/Plone/Members/username

然后:

http://localhost:1980/VirtualHostBase/http/webdav.example.ca:80/Plone/Members/VirtualHostRoot/username

最后:

http://webdav.example.ca:80/username

现在,这不会阻止用户尝试附加到其他人的文件夹,但Zope安全性会这样做。有一点鸡和蛋的情况,服务器在你已经使用过它之后才知道用户名。