迁移到GithubPages后的域名设置问题
- By lifetyper
- Sun 22 July 2018
基本上我一年也写不了一篇文章,服务器主要是拿来翻墙的,碰上服务器速度变慢了就得迁移一次,虽然已经是基于pelican的静态网站,但nginx还是得重新配置一次。
刚好发现github pages已经对custom domain开放https功能了,这样基本上也就够了。静态blog基本上迁移没什么好废话的,就是这个custom domain的设置有点麻烦。
其实如果我只需要绑定lifetyper.com的话也没什么问题,但我一直都是lifetyper.com和www.lifetyper.com同时绑定的,githubpages上设置的域名是根域名,如果直接把两个域名的A记录都解析到github的地址,结果是访问www子域名的时候会爆一个https证书错误,因为证书是为根域名颁发的,子域名并不能直接用这个证书。
找了一下发现这个问题其实用cloudflare的DNS很好解决。首先要设置根域名的A记录到Github,让lifetyper.com正常访问,然后给www子域名设置一个page rules.
例如我希望把有所www.lifetyper.com的访问都转移到lifetyper.com,同时保持链接不掉,可以这样设置:
url description:*www.lifetyper.com/*
forwarding url:https://lifetyper.com/$2
这里$2表示替换为第二个通配符*的值,同理,可以用美元符+数字匹配多个通配符。
但这样的设置是不够的,因为www.lifetyper.com并没有任何DNS记录,cloudflare不能接管一个没有任何记录的域名,所以需要给www.lifetyper.com设置一条CNAME记录,值为@,同时保证这条记录是DNS&HTTP Proxied By Cloudflare的橙色。
都设置成功后,稍等一段时间就可以生效了,这样所有的访问都被导向根域名了。