apache webdav需同步配置模块(dav/dav_fs/auth_basic)、目录权限、basic认证及绕过xampp默认locationmatch拦截,缺一导致403/405错误。

Apache 支持 WebDAV 不是开个开关就行,得把模块、目录、认证、拦截规则四块都配对,缺一不可。XAMPP 环境下尤其容易卡在 403 或 405 错误,多数是因为默认配置做了限制,不是功能没启用,而是被拦住了。
确认并启用核心模块
WebDAV 功能依赖两个模块,顺序不能错:dav_module 必须在 dav_fs_module 之前加载。
- 打开 \xampp\apache\conf\httpd.conf,确保以下两行未被注释:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
- 检查是否生效:命令行运行 httpd -M | findstr dav(Windows)或 httpd -M | grep dav(Linux/macOS),应同时看到 dav_module 和 dav_fs_module
- 顺带确认 mod_auth_basic 已启用(Basic 认证必需),否则 PUT/DELETE 操作会直接报 500 错误
配置 WebDAV 目录与 Basic 认证
别用 Digest 认证——Windows 映射网络驱动器对它支持差,常卡登录框或返回 401。改用 Basic + HTTPS 才稳定。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 编辑 \xampp\apache\conf\extra\httpd-dav.conf,替换原
<directory></directory>块为:
DAV on
DavDepthInfinity on
AuthType Basic
AuthName "WebDAV"
AuthUserFile "C:/xampp/webdav/.htpasswd"
Require valid-user
Options Indexes FollowSymLinks
- 创建目录:mkdir C:\xampp\webdav
- 生成密码文件:cd \xampp\apache\bin && htpasswd -c ..\..\webdav\.htpasswd user1(按提示设密码)
- 给 Apache 进程赋权:右键该目录 → 属性 → 安全 → 编辑 → 添加 Everyone 或 SYSTEM,勾选“修改”
绕过 XAMPP 默认的安全拦截
XAMPP 在 \xampp\apache\conf\extra\httpd-xampp.conf 里用 <locationmatch></locationmatch> 对 /webdav 路径做了全局 deny,你配的 <directory></directory> 再完整也进不去。
- 打开该文件,找到以
<locationmatch></locationmatch>开头的区块 - 在其中
Deny from all的上方插入一行:Allow from 127.0.0.1(如需局域网访问,可写Allow from 192.168.1) - 保存后重启 Apache
验证与连接要点
配置完别急着映射驱动器,先做基础验证:
- 浏览器访问 http://localhost/webdav,应弹出登录框,输入账号密码后能看到目录列表
- Windows 映射网络驱动器时,URL 写 http://localhost/webdav(结尾不要斜杠),否则可能失败
- 若仍连不上,检查 Apache 错误日志(\xampp\apache\logs\error.log),常见线索包括 “Could not open property database”(缺 auth 模块)、“client denied by server configuration”(被 LocationMatch 拦截)
- 生产环境务必加 HTTPS,否则 Basic 认证明文传密码极不安全









