Gitlab Pages自定义域名所有权验证失败求助
嘿,我之前也踩过GitLab Pages域名验证的坑,给你梳理几个大概率能解决问题的排查方向:
排查GitLab Pages自定义域名验证失败&404问题
1. 先核对DNS记录的类型和内容是否完全正确
GitLab验证域名的核心是A/CNAME记录(指向GitLab Pages服务)+ TXT验证记录(证明你是域名所有者),这俩缺一不可:
- 如果是根域名(比如
yourdomain.com):- A记录主机名填
@或留空,值填52.167.214.135(你选的这个IP是对的,属于GitLab Pages官方IP池) - TXT记录主机名同样填
@或留空,值必须完全和GitLab Pages设置页给你的验证字符串一致(别多空格、少字符,也别加多余引号)
- A记录主机名填
- 如果是子域名(比如
blog.yourdomain.com):- 更推荐用CNAME记录,主机名填子域名前缀(比如
blog),值填<你的GitLab用户名>.gitlab.io - 对应的TXT记录主机名填子域名前缀,值同样用GitLab给的验证串
- 更推荐用CNAME记录,主机名填子域名前缀(比如
你说访问域名和直接访问IP都是404,说明DNS解析大概率是通的,但GitLab还没把你的域名和项目绑定上,核心问题还是在验证环节或者项目配置。
2. 用命令确认TXT记录是否生效
别光看DNS服务商的后台,直接用终端命令查一下实际生效的记录:
dig TXT yourdomain.com # 根域名用这个 # 或者子域名用 dig TXT blog.yourdomain.com
如果输出里看不到GitLab给的验证串,那肯定是DNS配置错了——哪怕你等了几天,也可能是主机名填错了(比如根域名填了子域名前缀)或者内容打错了。
3. 检查GitLab端的项目配置
- 确认你是在正确的项目里添加的域名:GitLab Pages是和单个项目绑定的,如果在无关项目里加了域名,肯定不会生效
- 去项目的
Deployments > Pages页面,看看有没有成功的部署记录:如果从来没部署过,或者部署失败,哪怕域名验证过,也只会显示404 - 核对
.gitlab-ci.yml的pagesjob:如果是自动部署,确保配置里的输出目录是public,且CI/CD流水线跑成功了(去CI/CD > Pipelines看日志)
4. 排除域名被占用的可能
GitLab Pages的域名是全局唯一的,如果之前有其他用户验证过这个域名,你会无法通过验证。可以先测试一个临时子域名(比如test.yourdomain.com),如果这个能验证成功,那就是原域名被占用了,得联系GitLab支持处理。
5. 手动触发重新验证
有时候GitLab的验证机制会抽风,试试这招:
- 先在GitLab Pages设置页删除当前的域名记录,等5分钟左右再重新添加
- 重新添加后,再核对一遍DNS记录,然后点击域名旁边的「重新验证」按钮(如果有的话)
最后,等所有配置都确认无误后,清一下浏览器缓存用隐私窗口访问试试。要是还是404,看GitLab里域名的状态:如果显示「未验证」,继续抠DNS;如果显示「已验证」,那就是项目部署的问题,盯着CI/CD日志找原因就行。
内容的提问来源于stack exchange,提问作者sFyX67v7Ia1XDGFU
相关产品推荐
相关产品推荐

