Hugo | 为Blog添加自定义域名
在哪儿买
一开始挑域名是跑去了著名的去你爸爸……咳,不是,是GoDaddy,当时是看中它有繁中,语言上没障碍,比较好浏览和比价,结果挑着挑着忽然发现,原来只有第一年有优惠,第二年价格飞速上涨……我大受震撼并且放弃了一些打算。
顺便:GoDaddy算是个什么名字啊!!!!
晨星:我去搜了它为啥叫GoDaddy,说是一开始是想致敬喜剧电影Big Daddy(冒牌老爹),但Big Daddy的名字被占了,所以……
最终是选了Dynadot,相比而言,网站内部自带中文(太好了我就不爱看英文),价格比较透明(明确列出首年和次年续费价格),支持以人民币显示价格,甚至可以用支付宝付款。
好!鼓掌!就它了!
一些象群朋友的推荐~
逛菜市场
不得不说,逛Dynadot的体验真的有点像逛菜市场。
一长串域名整整齐齐乖乖巧巧地罗列在那儿,身上贴好首年优惠价和次年续期价,不由自主地就会让人联想到新鲜,水灵,和超市折扣大减价。
而我尽看一些稀奇古怪的东西,比如:
.date,首年34,续费也是34,.dating,首年104,续费284。足以说明很多问题了,朋友们,千金难买正在进行时啊。
又比如:
.sexy,首年222,次年218,.porn和.sex都是588,甚至.adult也是588,怎么说呢,只好说人类真是一种直接的生物。
而日本人总是剑走偏锋的,.moe后面标着用途是日本粉丝网站,你说这刻板印象,上哪儿说理去。
挑挑选选到后来(.club好可爱,.life我也喜欢,.cafe超绝无敌可爱),在决赛轮征求了一下朋友们的意见
我:决赛轮,mantyke.cc还是mantyke.icu
我的H1:icu
我:我也喜欢,含义丰富,但是总觉得哪里怪怪。
我的H1:抢救你的心?
shioko:icu
shioko:你是学者。
域名商:icu也可以是I SEE YOU
完全被说服了。
好,那就icu了,现代人谁不需要一个便携icu呢?
设置域名
注册账号
注册账号的时候会索要很详细的资料包括手机号码什么的,手机号不会用来验证,shioko说可能快到期了会发个短信通知一下,地址随便填也可以,精确到省份似乎就OK,总之看上去很凶其实还蛮随意的
配置github
买好后打开博客的Github
仓库,进入setting
设置,点开倒数第二项Pages
,在Custom domain
处输入购买的域名,点save
。
回到github仓库,新建一个文件,标题写CNAME
,里面写上域名,不需要加https://,只需要填后面的部分。
开始菜单点击运行,输入cmd
,打开cmd
,在命令行窗口里输入ping “你的blog地址”
,这里注意是之前的Blog地址,比如xxx.github.io
,把网站IP记下来。
打开Dynadot域名设置,找到DNS设置,打开,在域名设置部分填写刚刚Ping出的IP地址,记录类型选A。保存后网页底部会跳出“自定义DNS已更改”,这就改好了。
做完上面几步之后理论上域名就设置好了,这个时候需要等一段时间的DNS缓存,Github会自动帮忙申请Https证书。我是过了四五分钟就可以用新的域名打开Blog了,可能视情况也有等的久的。
一些惊慌失措
刚刚配置好的域名,很可能会在浏览器上显示警告“不安全”,我猜是由于Https证书还没到位,稍等一段时间就可以。需要的话可以在Github仓库的page
页勾选最下面的Enforce HTTPS
。
我还碰见了刚申请完的半个小时域名一直无法使用Https,只能用http打开的情况,也是等一等就好了,非常神秘。
github page可能会显示一条黄色警告
www.站点域名 is improperly configured
Domain's DNS record could not be retrieved. For more information, see Learn more (InvalidDNSError). We recommend you change this to a CNAME record pointing to 站点名称.github.io
这时候可以把Dynadot域名设置里的DNS设置换一下,改成“站点名称.github.io”,类型选择CNAME,注意CNAME类型不能与A类型共存,两者只能有一个。
shioko:A对应IP,cname对应跳转域名
虽然我感觉好像不管也没什么问题……
善后工作
配置完自定义域名后Blog本地仓库推送到远程仓库就出现了一点问题,输入git push -u origin master
时显示
应该是由于Github仓库多了一个CNAME文件,和本地库不同步导致的。读了读【狀況題】怎麼有時候推不上去…找到了解决方案,我用了先拉后推的选项,先输入
git pull --rebase
這裡加了
--rebase
參數是表示「內容抓下來之後請使用 Rebase 方式合併」,當然你想用一般的合併方式也沒問題。
然后再用git push -u origin master
推送。
另外一个问题是采用原来的推送部署方法就会一直多需要这一步,挺麻烦的,我的解决方案是不再删除Public
文件夹下的文件,用Hugo
构建网站后直接推送,就能够解决了。