我configuration了Apache2以允许WebDav在一个目录(CentOS 5 / Plesk 8.6)上:
在我的vhost.conf中我有:
<目录/var/www/vhosts/domain.com/httpdocs/target_dir>
Dav On
AllowOverride无
订单允许,否认
全部允许
</目录>
我可以使用身份validation的罚款连接到目录,并从中下载文件。 但是我不能写信给dir。 当我尝试上传或创build目录时,出现403错误。
任何人有任何提示?
提前致谢 –
更新 – 6/5使用下面的评论我已经孤立这个问题是与.htpasswd受保护的目录的某种types的冲突。 我可以创build一个不受保护的目录,并使WebDAV上传正常。 但是,一旦我启用基本身份validation目录一切都南下。 我可以阅读,但不能上传。
这是我的vhost.conf:
<Directory /var/www/vhosts/domain.com/subdomains/subdomain/httpdocs/>
AuthUserFile /var/www/.htpasswd
AuthName“login”
AuthType基本
要求有效的用户
DAV上
AllowOverride无
<Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
要求有效的用户
</限制>
</目录>
6/6更新
能够以最小的努力使WebDAV在不同的域上工作。 这两个域之间的唯一区别是,在拒绝写访问的那个域中,我有一个DocumentRoot指令:
DocumentRoot /var/www/vhosts/domain.com/httpdocs/app/webroot
可能会造成一些问题?
最近我在Fedora 10系统上遇到了同样的问题。 在我的情况下,罪魁祸首是我在Apache做的一些奇怪的redirect。 具体来说,我使用了一个内容pipe理系统(准确的说是Drupal),它内部的.htaccess包含了下面的redirect逻辑,用于将丢失的文件redirect到PHP脚本:
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
因为在这种情况下REQUEST_FILENAME不存在,所以上面只影响PUT方法是有意义的。
没有Drupal区域内的WebDAV区域,这似乎是一个合理的约束,解决了这个问题。
另外,我认为SELinux可能会导致不同的错误,但是在上面的讨论中没有提到。 你尝试禁用SELinux吗?
同样的问题。 解决:
<Location /xyz> DAV On AuthType Digest AuthName "webdav-xmarks" AuthDigestProvider file AuthUserFile "/home/xy/xba/digest-password" Require valid-user RewriteEngine off <-- this part solved it! </Location>
你的error_log是什么意思? 这是第一个看的地方。
另外,在常规access_log中查看; 有时某些DAV客户端会尝试在高级目录上执行DAV事务,而不是在您工作的位置,这要求他们至less具有对虚拟主机根目录的只读DAV访问权限。
你尝试使用限制:(例如)
<Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> Require valid-user </Limit>
同样的问题。
通过在webdav目录中创build一个.htaccess文件解决:
RewriteEngine off
在这里find: http : //annoyingtechnicaldetails.wordpress.com/2007/07/20/webdav-vs-drupal-htaccess-redirect-rules/
正如Ram Prasad所说,你需要在vhosts.config文件中的Directory条目中使用Limit语句。
您还需要一个与.htaccess文件位于同一目录中的apache拥有的.DAV目录。 我发现这通常会导致403错误,因为Apache使用此文件夹来写入临时文件。
另见: http : //www.webdav.org/mod_dav/install.html