我已经使用 WebDAV 配置了我的 Apache 2.4.10:
DavLockDB "/etc/httpd/var/DavLock"
Alias /public "/srv/webdav/public"
<Directory "/srv/webdav/public">
Dav On
AllowOverride None
Options Indexes
AuthType Digest
AuthName 7ooo
AuthUserFile "/etc/httpd/user.passwd"
AuthDigestProvider file
<Limit GET HEAD OPTIONS PROPFIND>
Require all granted
</Limit>
<LimitExcept GET HEAD OPTIONS PROPFIND>
Require user webdav
</LimitExcept>
</Directory>
所有必要的文件和文件夹都存在并具有适当的权限。
如果我使用 Windows 7 64 位下的 Windows 资源管理器连接到 WebDAV,我可以读取文件并更改子目录。但是,我无法写入任何新文件或现有文件。Windows 资源管理器会无限期挂起。记事本也是如此。
我的配置有什么问题?
奇怪的是,其他 WebDAV 客户端(如 cadaver 甚至 iPhone 应用程序)都运行良好。
另外,如果我仅在 LimitExcept 子句前面放置“Require all grant”(没有 Limit),则写访问权限可以正常工作(对于所有用户,而不仅仅是用户“webdav”)。
答案1
您的 apache 日志是否显示您已正确通过 webdav 用户身份验证?听起来摘要式身份验证可能无法正常工作。
您可能想要使用 keepalive 参数(如果您有代理,则需要更多),但切换到 HTTP 基本身份验证/SSL 会更简单,并且不会降低安全性。