Github Pages 无法适配含西里尔文的自定义域名问题求助
解决GitHub Pages无法添加含西里尔字符自定义域名的问题
我之前帮好几个开发者踩过这个坑——GitHub Pages对带西里尔字符的国际化域名(IDN)不支持直接输入,得先转成Punycode格式才行,这是因为DNS协议底层只认ASCII字符,非英文的域名必须转码后才能被系统识别。
给你一步步来解决:
- 第一步:把西里尔域名转成Punycode
不同系统有自带工具可以直接转:- Linux/macOS终端直接敲:
idn "你的西里尔域名",回车就能得到以xn--开头的ASCII字符串 - Windows PowerShell里输入:
[System.Globalization.IdnMapping]::GetAscii("你的西里尔域名"),执行后就能获取转换结果
- Linux/macOS终端直接敲:
- 第二步:在GitHub Pages里配置转码后的域名
打开仓库的「Settings」→「Pages」,在「Custom domain」输入框里粘贴刚才得到的Punycode字符串(别输原西里尔域名),然后保存设置。 - 第三步:配置DNS解析
去你的域名服务商后台设置解析:- 如果用CNAME记录:主机记录可以填原西里尔域名(大部分服务商现在支持直接输入),记录值填你的GitHub Pages默认域名(比如
xxx.github.io);如果服务商不支持输入西里尔字符,就把主机记录也转成Punycode - 如果用A记录:主机记录同样处理,记录值填GitHub官方的Pages IP(比如
185.199.108.153这类,GitHub文档里有最新的IP列表)
- 如果用CNAME记录:主机记录可以填原西里尔域名(大部分服务商现在支持直接输入),记录值填你的GitHub Pages默认域名(比如
- 第四步:等待生效
保存设置后,GitHub需要10-30分钟完成域名验证,DNS解析也可能需要一点时间,之后你的西里尔域名就能正常指向GitHub Pages了
额外提醒:
- 转换的时候一定要复制原域名,别手动输入,避免西里尔字符拼写错误(比如相似的字符混淆)
- 有些DNS服务商号称支持IDN自动转码,但为了避免兼容问题,还是自己转成Punycode再配置到GitHub更稳妥
- 如果配置后还是不行,用
nslookup或者dig命令查一下转码后的Punycode域名,看看解析是否指向正确的GitHub地址,排查DNS问题
内容的提问来源于stack exchange,提问作者Alexey Nikitin
相关产品推荐
相关产品推荐

