在 WEBDAV 服务器上移动文件 returns 404 即使文件存在

Moving file on WEBDAV server returns 404 even though file exists

我无法通过 webdav 来回移动我们服务器上的特定文件,也找不到问题的根源。一些例子:

有效:README.md -> README1.md -> README.md

有效:db.xml.gz -> db.xml.bla -> db.xml.gz

不起作用:db.xml.gz -> db.xml.gz.lock -> db.xml.gz(结果为 404

cadaver 试过:

dav:/webdav/User/> ls
Listing collection `/webdav/User/': succeeded.
        .htaccess                            117  Jun  6  2018
        db.xml.gz                            635  Feb  7 21:36
dav:/webdav/User/> mv db.xml.gz db.xml.gz.lock
Moving `/webdav/User/db.xml.gz' to `/webdav/User/db.xml.gz.lock':  succeeded.
dav:/webdav/User/> mv db.xml.gz.lock db.xml.gz
Moving `/webdav/User/db.xml.gz.lock' to `/webdav/User/db.xml.gz':  failed:
404 Not Found
dav:/webdav/User/> ls
Listing collection `/webdav/User/': succeeded.
        .htaccess                            117  Jun  6  2018
        db.xml.gz.lock                       635  Feb  7 21:36
dav:/webdav/User/> mv db.xml.gz.lock db.xml
Moving `/webdav/User/db.xml.gz.lock' to `/webdav/User/db.xml':  failed:
404 Not Found
dav:/webdav/User/> mv db.xml.gz.lock db.bla
Moving `/webdav/User/db.xml.gz.lock' to `/webdav/User/db.bla':  succeeded.
dav:/webdav/User/> mv db.bla db.blubb
Moving `/webdav/User/db.bla' to `/webdav/User/db.blubb':  succeeded.
dav:/webdav/User/> mv db.blubb db.bla
Moving `/webdav/User/db.blubb' to `/webdav/User/db.bla':  succeeded.

如果源与目标相同加上额外的文件结尾,似乎会失败。我读到一些 windows 服务器跳过导致问题的文件结尾,但这是一台 Linux 机器。 非常感谢任何想法!

我找到 this bug report 的解决方案:在 apache 主机配置中禁用 MultiViews 解决了这个问题。 MultiViews 基本上阻止我重命名一些文件扩展名。