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

摘要

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

购买域名

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

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

域名解析

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

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

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

创建CNAME文件

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

英文域名

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

中文域名

中文域名的话,则需先将中文域名转换为Punycode标准编码的字符串:中文域名转换Punycode标准编码工具
For example:
例子.中文经过转换为xn--fsqu00a.xn--fiq228c
xn--****.xn--***填入CNAME文件即可。
{% note danger %}
如果直接在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.
{% endnote %}

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-28 16:12
中南大学 Java
几年前还没有chatgpt的时候,刷题真的是很痛苦。刷不出来只能看题解,题解有几个问题:第一个是每次看的写题解的人都不一样,很难有一个统一的思路;第二个也是最重要的是,题解只提供了作者自己的思路,但是没有办法告诉你你的思路哪里错了。其实很少有错误的思路,我只是需要被引导到正确的思路上面去。所以传统题解学习起来非常困难,每次做不出来难受,找题解更难受。但是现在chatgpt能做很多!它可以这样帮助你&nbsp;-1.&nbsp;可以直接按照你喜欢的语言生成各种解法的题解和分析复杂度。2.&nbsp;把题和你写的代码都发给它,它可以告诉你&nbsp;你的思路到底哪里有问题。有时候我发现我和题解非常接近,只是有一点点🤏想错了。只要改这一点点就是最优解。信心倍增。3.&nbsp;如果遇到不懂的题解可以一行一行询问为什么要这样写,chatgpt不会嫌你烦。有时候我觉得自己的range写错了,其实那样写也没错,只是chat老师的题解有一点优化,这个它都会讲清楚。4.&nbsp;它可以帮你找可以用同类型解法来做的题。然后它可以保持解法思路不变,用一个思路爽刷一个类型的题。如果题目之间思路又有变化,它会告诉你只有哪里变了,其他的地方还是老思路。5.&nbsp;它也可以直接帮你总结模板,易错点。经过chat老师的指导,我最大的改变是敢刷题了。之前刷题需要先找某一个人写的算法题repo,然后跟着某一个人他的思路刷他给的几个题。如果想写别的题,套用思路失败了,没有他的题解,也不知道到底哪里错了;看别人的题解,思路又乱了。这个问题在二分查找和dp类型的题里面特别常见。但是现在有chat老师,他会针对我的代码告诉我我哪里想错了,应该怎么做;还按照我写代码的习惯帮我总结了一套属于我的刷题模板。每天写题全是正反馈!
牛客981:不刷才是爽
AI时代的工作 VS 传...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务