微信域名申诉与Caddy+kkFileView配置问题排查笔记

一、问题背景

1.1 初始错误现象

访问 https://zdocs.zhaopeng.site/index_1786035542720.html?ck=vk01el5N 时出现:

Whitelabel Error Page
This application has no explicit mapping for /error, so you seeing this as a fallback.
Tue Aug 25 14:42:46 CST 2026
There was an unexpected error (type=Not Found, status=404).

错误含义:Spring Boot 框架的默认404错误页面,表示服务器上不存在该URL对应的资源。

1.2 错误原因分类

  • URL路径拼写错误
  • 网站资源已被删除
  • 网站维护或部署问题

二、微信申诉审核情况

2.1 第一次申诉结果

审核结果:不通过

不通过原因:域名 zhaopeng.site 下的链接 https://zdocs.zhaopeng.site/index_1786035542720.html?ck=vk01el5N 的内容违反《微信外部链接内容管理规范》第18条“其它违反国家法律法规的内容”,暂时无法恢复微信内直接访问的服务。

2.2 关键时间点

该审核结果是在将验证文件放入 /srv/docs/ 目录之前获得的。

三、Caddy反向代理配置

3.1 架构说明

  • Caddy 作为反向代理
  • 后端服务为 kkFileView(运行在容器中)
  • 需要让微信验证文件(.txt)绕过 kkFileView,由 Caddy 直接提供静态文件服务

3.2 Caddyfile 配置

zdocs.zhaopeng.site {
    handle /2d695757040021118c75b00ae3fa95b7.txt {
        root * /srv/docs
        file_server
    }

    handle {
        reverse_proxy kkfile:8012 {
            header_up X-Forwarded-Proto {scheme}
            header_up X-Forwarded-Host {host}
            header_up X-Forwarded-For {remote_host}
        }
    }
}

配置要点

  • 验证文件的 handle 规则必须放在通用 handle 规则之前,确保优先匹配
  • root * /srv/docs 指定文件所在目录
  • file_server 让 Caddy 直接提供静态文件服务
  • 其他所有请求转发给 kkfile 容器处理

验证文件访问地址https://zdocs.zhaopeng.site/2d695757040021118c75b00ae3fa95b7.txt

四、kkFileView 容器文件排查

4.1 进入容器查看文件

# 进入容器
docker exec -it kkfile /bin/bash

# 查看默认文件存放目录
ls -la /opt/kkFileView-4.1.0/file/demo/

# 全局搜索指定文件
find / -name "*index_1786035542720.html*" 2>/dev/null

4.2 不进入容器的命令执行方式

# 查看 demo 目录
docker exec kkfile ls -la /opt/kkFileView-4.1.0/file/demo/

# 全局搜索文件
docker exec kkfile find / -name "*index_1786035542720.html*" 2>/dev/null

# 搜索所有 html 文件(排除第三方库目录)
docker exec kkfile find /opt -name "*.html" 2>/dev/null | grep -v node_modules

4.3 容器内发现的相关文件

/opt/libreoffice7.3/help/index.html 发现了一个 index.html 文件。

文件性质:这是 LibreOffice 自带的帮助文档首页,是 kkFileView 依赖的办公软件转换组件的一部分,与微信违规文件无关,不能删除

4.4 确认结果

违规文件 index_1786035542720.html 在容器中未找到,且通过浏览器访问该链接返回404错误,确认文件已被删除。

五、整改完成状态

5.1 验证检查结果

检查项目状态说明
违规文件是否可访问不可访问返回404 Whitelabel Error Page
验证文件是否可访问可访问Caddy直接提供静态文件服务
LibreOffice 帮助文件正常保留系统文件,不影响

5.2 排查命令汇总

# 检查容器内文件
docker exec -it kkfile /bin/bash
ls -la /opt/kkFileView-4.1.0/file/demo/
find / -name "*1786035542720*" 2>/dev/null

# 检查宿主机目录
ls -la /srv/docs/

# 测试访问
curl -v https://zdocs.zhaopeng.site/index_1786035542720.html?ck=vk01el5N
curl -v https://zdocs.zhaopeng.site/2d695757040021118c75b00ae3fa95b7.txt

六、重新申诉建议

6.1 申诉理由要点

在重新提交申诉时,应明确说明:

  1. 已彻底删除违规文件 index_1786035542720.html,当前访问该链接返回404状态码
  2. 已完成全站内容自查,未发现其他违规内容
  3. 已完成站长验证文件部署(2d695757040021118c75b00ae3fa95b7.txt 可正常访问)
  4. 承诺今后严格遵守《微信外部链接内容管理规范》,合规运营

6.2 可能仍不通过的原因

  • 微信缓存了之前的违规页面内容
  • 域名下其他页面也存在违规问题
  • 微信风控系统检测到对抗检查行为

6.3 备用方案

  • 等待1-2天让微信缓存失效后再次申诉
  • 通过邮件 moment@tencent.com 联系腾讯官方反馈
  • 如多次申诉无效,考虑更换新域名

七、关键经验总结

  1. Caddy配置中精准匹配规则要写在通用规则前面
  2. kkFileView容器中的LibreOffice系统文件不能误删
  3. 微信验证文件需由反向代理层直接处理,不能转发到后端应用
  4. 申诉前必须确保违规链接返回404而非任何内容
  5. 容器内文件排查可使用 docker exec 组合命令操作

标签: none

添加新评论