在 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 基本上阻止我重命名一些文件扩展名。
我无法通过 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 基本上阻止我重命名一些文件扩展名。