GithubPage-自定义域名
前言
如果将静态博客搭建到Github Page上,你会默认获得用户名.github.io
的初始域名。
初始域名本身也具有一定的易读与易记的特性,但也有一些不方便之处。一方面,对于熟络github的访问者来说,它会透露你的github用户名;另一方面,对于不熟络github的访问者来说,他很难通过这个规律去熟记这个域名。如果出于一些理由,那么自定义域名就显得很有必要。
原理
如果你去搜索此类关键字,你会发现大部分文章的标题都是“更换域名”,这实际是有点不严谨的。github的官方文档的标题是“自定义域名”,阅读官方文档后会发现,实际上这只是做了一个域名的映射。对于本博客,使用ldm0715.github.io
也是能够访问的,只是访问时会自动将ldm0715.github.io
映射到hexo.gcnanmu3125.xyz
上,也就是说Github Page的默认域名其实并没有失效,严格来说不能算更换的范畴。官方文档中说明的“自定义域名”,实际上就是添加了一个重定向的步骤。
步骤
需要提前说明的是,官方文档提供了基本的两种域名的重定向教程。
apex域
,也称为一级域名,例如:example.com
和123.xyz
。子域
,也称为二级域名。例如:www.example.com
和blog.123.xyz
。
网上很多文章实际上根本没有对此进行操作上的区分,而是将官方体现的两种方式都实践了,这是没有意义的,也是完全没必要的。个人只推荐使用子域,对于相对正式的要求(以example.com
为例),可以使用www.example.com
,而不推荐直接使用一级域名。接下来只会展示使用子域的步骤。
在Hexo博客根目录的
source
文件夹下建立一个名为CNAME
的文件,在文件中写入需要映射的域名。Hexo三连上传到github站点仓库。
1
hexo cl && hexo g && hexo d
去DNS处添加一个类型为
CNAME
的解析。以
Cloudflare
为例,以下为本站的例子:Type
:CNAMEName
:hexoTarget
: ldm0715.github.io
打开站点仓库 ->
Settings
->Pages
->Custom domain
。在
Custom domain
中填入CNAME
文件中写入的域名,等待Github的DNS验证通过即可。
更改SSL/TLS的加密模式
在自定义了域名之后,如果出现多次恶性的重定向次数过多
导致无法访问的错误的话,多半是因为SSL的问题了,因为大部分人都会勾选强制https
的,但是由于域名解析回源使用的是HTTP链接,就会导致无休止的重定向。
以Cloudflare
为例,只需要在SSL/TLS
加密选项中,将Flex
策略转变为Full
即可。