只读服务器中的 Apache2 WebDAV 可写目录

Apache2 WebDAV writable directory in readonly server

为了提供文件,我设置了一个只读的 WebDAV,Apache2 从 davs://dav.example.com/ 提供服务。但是,我想要一个可由登录用户写入的子目录 (davs://dav.example.com/uploads/)。

为了使我的网站只读,我使用了以下内容:

  ...

<Directory /var/www/dav>
    Options +Indexes

    DAV On

    Order allow,deny
    AuthType Basic
    AuthName "Not for public access!  Login only"
    AuthUserFile /var/www/htpasswd

    <Limit GET OPTIONS PROPFIND>
        Require valid-user
        Deny from all
    </Limit>

    <Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        Require host dav.example.com
        Deny from all
    </Limit>

    Satisfy Any
</Directory>

  ...

我试过制作 <Directory /var/www/dav/upload>,复制 <Limit PUT... 并在其中添加 Require valid-user,但这没有用。在 /upload/ 目录中创建文件时,服务器响应 500 错误。

这可能吗?我可以访问 site.conf 文件。

用这个制作一个 <Directory /var/www/dav/upload> 方块:

<LimitExcept GET OPTIONS PROPFIND PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    Require valid-user
    Deny from all
</LimitExcept>

如果需要,这也适用于 .htaccess 个文件。