XAMPP启用WebDAV多端口需手动修改httpd.conf、httpd-vhosts.conf、httpd-xampp.conf三文件并重启Apache;否则即使端口监听,请求仍被拒或返回405/403错误。

XAMPP 默认不启用 WebDAV 多端口支持,必须手动修改三个配置文件并重启 Apache;否则即使监听了 8080、8081 等端口,WebDAV 请求也会被拒绝或返回 405 错误。
确认 WebDAV 模块已加载且端口已监听
Apache 必须同时满足两个前提:模块启用 + 端口监听,WebDAV 才可能工作。缺一不可。
-
httpd.conf中需取消注释这两行:LoadModule dav_module modules/mod_dav.so和LoadModule dav_fs_module modules/mod_dav_fs.so - 在
httpd.conf的Listen区域,除默认的Listen 80外,必须显式添加你要用的端口,例如:Listen 8080、Listen 8081 - 检查
Include conf/extra/httpd-dav.conf行是否已取消注释(即前面没有#)
为每个端口单独配置 <virtualhost></virtualhost> 并启用 Dav On
WebDAV 不是全局开关,它依赖于具体目录的 Dav On 指令,而该指令必须出现在某个有效的 <virtualhost></virtualhost> 块内 —— 不能只写在主配置里。
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
- 在
conf/extra/httpd-vhosts.conf底部,为每个端口加一个独立的<virtualhost></virtualhost>块 - 每个块内必须包含
<directory></directory>(路径要和httpd-dav.conf一致),并在其中启用Dav On - 示例片段(端口 8080):
<VirtualHost *:8080>
ServerName localhost:8080
DocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/webdav">
Dav On
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
- 不要复用
httpd-dav.conf的整个<directory></directory>块 —— 它默认绑定在*:80,对其他端口无效
绕过 XAMPP 安全策略拦截 WebDAV 请求
XAMPP 自带的安全规则会无差别拦截所有非白名单路径的 PROPFIND、PUT 等 WebDAV 方法,导致连接失败或 403。
- 打开
conf/extra/httpd-xampp.conf,找到以<locationmatch></locationmatch>开头的区块 - 把整个区块注释掉(每行前加
#),或至少删掉或注释掉其中的Deny from all行 - 若你只希望开放 WebDAV 路径,可改用更精确的放行方式:
<location> Require all granted </location>,放在httpd-vhosts.conf对应端口块内
用户认证与权限控制容易失效
WebDAV 的 AuthType Digest 在多端口下极易因域名/Realm 不匹配而跳过验证,表现为“无需密码即可访问”或“始终提示认证失败”。
- 每个
<virtualhost></virtualhost>块中,AuthName必须唯一(如"WebDAV-8080"),否则浏览器会复用旧凭据造成冲突 - 确保
AuthUserFile路径是绝对路径,且文件存在(可用htdigest.exe -c "C:/xampp/security/webdav8080.htpasswd" "WebDAV-8080" user创建) -
<limitexcept get propfind options></limitexcept>中的空格不能省略,写成GETPROPFIND会导致语法错误,Apache 启动失败 - Windows 下映射网络驱动器时,URL 必须带端口号,如
http://localhost:8080/webdav,不能省略
真正麻烦的不是加端口,而是每个端口都得重走一遍模块加载、虚拟主机绑定、安全放行、认证隔离四步 —— 少一步,WebDAV 就只响应 OPTIONS 或直接断连。

















