下面一起来看一个Github托管 Pages 自定义域名的方法,希望此示例可以帮助到大家哦.
创建 CNAME 文件#
首先,在库的 gh-pages 分支根目录下创建 CNAME 文件,写入:
www.phpfensi.com
注意以下几点:
CNAME 文件名大写,域名前不需要添加 http 这样的协议,这里使用 www 子域名而不是顶级的 phpfensi.com,Github 推荐使用子域名.
如果域名 ‘phpfensi.com ’ 同样指向这个库的话,Github Pages 会自动将其重定向到 ‘www.phpfensi.com ’ 上.
添加 CNAME 记录#:
DNS 中添加一条 CNAME 记录,将 www 指向 chenxsan.github.io,之后检查 DNS 设置的情况:
- $digwww.phpfensi.com+nostats+nocomments+nocmd
- ;<<>>DiG9.9.5-rpz2+rl.14038.05-P1<<>>www.phpfensi.com+nostats+nocomments+nocmd
- ;;globaloptions:+cmd
- ;www.phpfensi.com.INA
- www.phpfensi.com.3599INCNAMEchenxsan.github.io.
- chenxsan.github.io.3599INCNAMEgithub.map.fastly.net.
- github.map.fastly.net.14INA103.245.222.133
一切正常.
添加 A 记录#
上面的 CNAME 记录只是将 www.phpfensi.com 指向 Github 服务器,此时访问 phpfensi.com 域名,会返回 404 错误,所以还需要在 DNS 中添加两条 A 记录指向 Github Pages 的两个 IP,更好的办法是添加 ALIAS,但 Google Domains 并不支持:
192.30.252.153
192.30.252.154
再使用 dig 命令检查 DNS 状况:
- $digphpfensi.net
- ;<<>>DiG9.9.5-rpz2+rl.14038.05-P1<<>>phpfensi.com
- ;;globaloptions:+cmd
- ;;Gotanswer:
- ;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:56008
- ;;flags:qrrdra;QUERY:1,ANSWER:2,AUTHORITY:0,ADDITIONAL:1
- ;;OPTPSEUDOSECTION:
- ;EDNS:version:0,flags:;udp:512
- ;;QUESTIONSECTION:
- ;phpfensi.com .INA
- ;;ANSWERSECTION:
- phpfensi.com .3599INA192.30.252.153
- phpfenis.com .3599INA192.30.252.154
- ;;Querytime:588msec
- ;;SERVER:8.8.8.8#53(8.8.8.8)
- ;;WHEN:FriNov1422:27:00CST2014
- ;;MSGSIZErcvd:73
这时再访问 phpfensi.com 域名,已经能正常打开,并且因为第一步中的设置,Github 会帮我们重定向到 www 上.