Hexo+Github pages博客绑定中文域名

欢迎访问我的个人博客: https://赵旗.top/

摘要

近期又开始了hexo的折腾,在阿里云上买了一个属于自己的域名,因此想着把自己用hexo+Github搭建的博客通过域名访问,于是按照百度上的教程一步一步来绑定域名,结果出现了很多问题 。整个过程可谓一波三折,终于实现了通过域名来访问博客,下面简要介绍一下我绑定域名过程中遇到的问题以及解决方案。

购买域名

这里以在阿里云上购买域名为例,大家也可以去其他平台购买域名。
登录阿里云,点击<stron>,选择域名注册
注册域名前需查询域名是否已被注册,选择自己喜欢的域名,支付即可。

一般来说,.top与.xyz结尾的域名都比较便宜。为了节约成本,我买的.top结尾的域名,一年只需两块钱,很便宜。</stron>

域名解析

购买域名后,我们依次点击个人昵称->域名与网站(万网)->域名,进入管理控制台,在这里我们可以看到自己购买的域名,点击解析,进入解析设置。

点击添加解析,依次输入:CNAME、@、Github博客地址确定,完成个人域名向个人博客的映射。

注意:这里填入博客地址的时候无需填写https:// ,只需按照example.github.io格式填写就行了。

创建CNAME文件

在本地的根目录下的source文件夹中新建一个名为CNAME的文本文件,文件内容为个人域名(没有http:// ,也没有www.),然后重命名删除该文件的后缀名:.txt
使用hexo d -g命令部署博客,这时在浏览器中输入新注册的域名,已经可以正常的访问博客了。

英文域名

英文域名就直接写:example.con

中文域名

中文域名的话,则需先将中文域名转换为Punycode标准编码的字符串:中文域名转换Punycode标准编码工具
For example:
例子.中文经过转换为xn--fsqu00a.xn--fiq228c
xn--****.xn--***填入CNAME文件即可。
如果直接在CNAME文件中填写中文域名,则Github会通过邮件提醒你:
The CNAME xxx.com is not properly formatted. See https://help.github.com/articles/troubleshooting-custom-domains/#github-repository-setup-errors for more information.

LeanCloud数据丢失

通过域名访问博客,发现文章的阅读次数不显示,于是各种折腾:检查元素、谷歌,最后发现是由于没有将新注册的域名加入到LeanCloud设置中的Web 安全域名,导致无法调用服务器资源。
解决方案:访问:LeanCloud官网,进入控制台,在设置中点击安全中心,将新注册的域名加入到Web安全域名中,点击保存即可。

busuanzi数据丢失

无论是通过域名还是github地址访问博客,博客底部的统计浏览量与浏览人次均不是以前的数据,而是从头开始计算….
busuanzi还不具备统初始值的功能,只能从头开始计算了。。。

拓展

中文域名

1、一类是域名后缀为英文字母的国际中文域名和别国中文域名,比如:中文.com,中文.net,中文.biz,中文.cc,中文.hk,中文.tm,中文.tv,中文.tw;
2、一类是域名后缀为中文的纯中文国内中文域名,比如:中文域名.中国,中文域名.公司,中文域名.网络;
中文域名在解析的时候,需要先转换为 xn–fiq228c.com或xn–fiq228c.cn形式的ASCII码,这种编码称为PunyCode。纯中文域名不被标准的解析服务器支持,要实现对这种纯中文域名的正确访问,ISP需要做相应的修改,以便能够正确解析中文域名。同时CNNIC也提供了专用服务器,用户只要将浏览器的DNS设置指向这台服务器,它同样可以完成对纯中文域名的正确解析。另外,考虑到现在有些ISP还没有做修改,而有些用户又不方便将DNS设置指向CNNIC提供的服务器,纯中文域名会被加上.cn后缀,即对每一个纯中文域名同时有两种形式:纯中文域名和纯中文域名.CN, 如:”中文域名.网络”和”中文域名.网络.CN”。这样即使ISP还没有做相应的修改,用户也可以正确使用中文域名。

PunyCode

英文域名在IIS或Apache中的虚拟主机设置,可以直接使用英文域名,如webmasterhome.cn。
中文域名在IIS或Apache中应如何设置主机头呢?如”中国站长之家.com”。
1、在进行设置之前要先把中文域名转化成为PunyCode编码,然后在主机头设置里面填上中文域名所对应的PunyCode编码(`xn–fiqsC146Ah4ex80Cro7A.com`)便可。
新的国际化域名的标准在网域名称编码上,为了保留向下兼容性及不影响现有的应用程序协议,因此将多国语言域名转成ASCII编码,而这种编码称为『punycode』。
因为经过Nameprep处理过的国际化域名是以 Unicode 序列的形式表示的。但现有的 DNS系统只支持用 ASCII字符表示的域名,所以要对Unicode序列进行 ACE(ASCII-compatible encoding)编码,把 Unicode序列表示的域名转换成 ASCII 字符串表示的ACE域名。
2、PunyCode是一种专为国际化域名而设计的高效ACE编码方式。它可以在Unicode序列和ASCII 字符串之间进行唯一的和可逆的转换。转换的过程中,Unicode 序列中的ASCII字符保持不变,国际化字符则用字母和数字来表示。它的实质是一种用数量有限的基本字符(字母和数字)来唯一地表示大字符集(Unicode)中的字符的通用算法。域名中的字符,包括 ASCII 码和 Unicode 码,都是作为整数进行处理。
PunyCode则是将一个经过Nameprep处理过的IDN,从一个8位的编码的形式转换为7位编码的形式。目前Internet DNS一向是7位ASCII编码的环境,经过这个PunyCode转码程序,便将IDN从一个8位的IDN转换为与现有DNS环境兼容的编码。
3、在DNS服务器方面,需要将IDN以PunyCode的编码形式来设定。因为PunyCode本身就是一种7位的编码,与ASCII编码完全兼容,所以可适用设定于目前所有可用的DNS版本,也就是说可以不需要为了设定PunyCode而重新安***IND新版本。但是若是需要使用DNAME指令来设定资源记录(Resource Record),则需先提升为BIND9的版本。

全部评论

相关推荐

01-23 14:54
同济大学 Java
热爱敲代码的程序媛:给你提几点【专业技能】这个模块里面可优化的地方:1.【具备JVM调优经验】可以去b站上搜一下JVM调优的视频,估计一两个小时凭你的学习能力就能掌握JVM调优的实践方面的技能。2.【MySql优化】MySql这一栏,你去b站或者找个博客看看MySql优化,学一下,如果你本身比较熟悉MySql语句的话,那基本半天时间凭你的学习能力MySql语句优化方面的技能你也能掌握个差不多。以上1,2两点主要是因为我看你专业技能大部分都说的是偏理论,没有写应用。再就是最后,你结合你的项目,想一想你的项目中哪些sql语句是可以用MySql优化的,到时候你面试的时候也好结合着说一下。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务