如何去掉WWW,使用顶级域名访问网站

拿我的域名为例:所谓顶级域名就是你申请的根域名.

  1. 顶级域名(根域名): hsblogs.com.
  2. 二级域名:
    • www.hsblogs.com 也是二级域名,只不过人们习惯用 www.+域名 而已.
    • blog.hsblogs.comxx.hsblogs.com 都是二级域名.
  3. 去域名服务商,做解析,例如阿里云万网.
    • 登录阿里云/万网【管理控制台】,点击【产品与服务】–【云解析】,进入域名解析列表;
    • 选择需要设置解析的域名点击【添加解析】,增加两条记录分别是主机记录(RR)为空或为@,主机记录(RR)为WWW,即可实现。
    • 例如:如果要将域名解析为 www.example.com,在主机记录(RR)处填写 WWW 即可;如需要直接解析为 example.com,主机记录(RR)处为空,或填写@。
  4. 解析完成后,web服务器apache或者nginx也进行修改,拿nginx为例,在nginx单ip单端口多域名的虚拟主机设置环境下,在 vhost文件夹下,vim hsblogs.com.conf 编辑.
    image
    在原来的 www.hsblogs.com.conf 处修改 rewrite 如图:
    1
    rewrite ^/(.*)$ http://hsblogs.com/$1 permanent;

image
修改完成后,重启 nginx服务器即可。

注:如果是wordpress,更换顶级域名,就如同换了一个新域名,要在后台设置处,或者直接修改数据表

  1. wp后台–>设置–>常规:
    image
  2. 或者直接修改数据表:wp_options
    image

至此完工,以后访问 www.hsblogs.com 所有url 都会重定向到 hsblogs.com


  1. 综上:实质就是重定向
    • 需求1:将不带www的顶级域名请求全部重定向到带www的二级域名
    • 需求2:反过来,将带www的二级域名请求全部重定向到不带www的顶级域名
    • 需求3:目录重定向
    • 需求4:目录跳转新域名

需求1:

1
2
3
4
server {
server_name hsblogs.com;
rewrite ^/(.*)$ http://www.hsblogs.com/$1 permanent;
}

需求2:

1
2
3
4
server {
server_name www.hsblogs.com;
rewrite ^/(.*)$ http://hsblogs.com/$1 permanent;
}

需求3:

1
2
3
if ( $request_filename ~ blog/ ) {
rewrite ^ http://www.hsblogs.com/newblog/? permanent;
}

需求3:

1
2
3
if ( $request_filename ~ blog/ ) {
rewrite ^ http://blog.hsblogs.com/? permanent;
}

Hexo+github绑定域名(主或二级)

你申请的Github Page的域名是username.github.io ,是一个二级域名。

那么,我要想用自己买的域名,或者自己的二级域名,去访问Github Page呢?

要绑定域名到,你申请的Github Pages上

下面记录操作步骤:

域名解析设置:

  • 前提你必须有自己的域名,而且是通过备案的域名哦
  • 因为我是在阿里云万网购买的域名,而且我的主域名 www.hsblogs.com 是我的主博客地址,所以只能新建个子域名 github.hsblogs.com 来测试啦,
  • 进入域名管理控制台、域名解析设置,添加解析,如图
  • 添加解析需要设置:
    image
  1. 记录类型:
    要将域名指向主机服务商提供的IP地址,请选择「A记录」;要将域名指向主机服务商提供的另一个域名,请选择「CNAME记录」。

  2. 主机记录:
    二级域名 :
    如:mail.example.com或abc.example.com,填写mail或abc;

  3. 解析线路:一般默认

  4. 记录值:
    A记录:
    将域名指向一个IPv4地址(例如:10.10.10.10),需要增加A记录
    CNAME记录:
    如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录

综上所述,

  • 你要是选择「A记录」,那么 记录值 你需要填写github pages 的IP地址,通过ping获取IP地址:
    image
    得到IP地址 151.101.100.133,将 ip地址填入记录值,保存。

  • 你要是选择 「CNAME记录」 ,那么 记录值 你需要填写你的github pages 的域名,也就是 username.github.io ,保存

  • 域名解析设置完了

Hexo设置

haoshuai6.github.io / source 目录下,新建名为 CNAME 的文件,注意没有任何后缀,打开文件编辑内容为你刚才新加解析的域名,注意没有http://,形如github.hsblogs.com 这样,保存。
image

设置完毕,hexo重新生成、部署到github即可!

等待几分钟,访问你刚申请的域名github.hsblogs.com即可跳转到username.github.io

Hexo+Github搭建个人博客[两个分支方便维护]

一个高逼格的博客 Hexo + github ,这个组合免费、静态化、部署方便!编写文章使用Markdown,这可真是,很吸引人啊!

下面记录安装、搭建[Hexo + github]的过程

整个过程分为三部分

  1. 远端部分 github 建库
  2. 本地搭建 Hexo 博客
  3. 关联,部署到 github

Github建库

  • 登陆github, 新建Create a new repository, 命名必须是你的github账户名 username.github.io ,这也就是你博客的域名啦!

本地部分:

环境准备

  • 安装 GIT Github For Windows
  • 安装 node.js
  • 验证安装,具体的安装步骤就省略了[身为猿类这肯定都不是问题啦]
  • 其中,若首次安装git, git 要和github关联,需要生成SSH-KEY并添加到github,这里也不赘述了!

安装 hexo

  • Git bash窗口
1
$ npm install hexo-cli -g
  • 任意磁盘,新建文件夹 eg: D:\HEXO
  • Git bashwin+R cmd命令窗口,定位到D:\HEXO,然后依次执行
  • hexo博客初始化
1
$ hexo init
  • 安装依赖
1
$ npm install
  • 启动服务预览
1
$ hexo server
1
2
INFO Start processing
INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

hexo 本地搭建完毕,本地访问http://localhost:4000/ 即可预览效果.

注:为了避免被,以上的npm镜像可以换成淘宝npm

1
$ npm install -g cnpm --registry=https://registry.npm.taobao.org

之后使用npm就可以换成cnpm.

关联部署到Github

在刚才生成博客的根目录下,找到站点配置文件 _config-yml 修改 # Deployment部分

注意:deploy 每一项的参数都要留有 空格

1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: https://github.com/haoshuai6/haoshuai6.github.io.git
branch: master

为了能够使Hexo部署到GitHub上,需要安装一个插件,避免出现 ERROR Deployer not found : git错误

1
npm install hexo-deployer-git --save

到这里先 STOP 一会,

思考一个问题:

即当我重装电脑,或者在别的电脑,想要发布,修改文章时候,无法使用现在搭建好的hexo环境?

想法 :用 github 两个分支,一个用来存放Hexo网站的源文件,一个用来发布网站(即hexo最后部署的静态文件)。

参考文章: http://crazymilk.github.io/2015/12/28/GitHub-Pages-Hexo%E6%90%AD%E5%BB%BA%E5%8D%9A%E5%AE%A2/#more


20161029 补充两个分支实现方法:

那么,目标是有两个分支:

master分支:用来提交部署 hexo 在本地编译好的静态文件。即:博客的显示的静态文件

source分支:用来备份、存储 hexo 在本地的原始程序文件。即:hexo博客的源文件

如何实现呢:

如果这么操作: 建好库之后,clone 到本地,然后在该文件夹下用hexo搭建,可以这样有一个问题:

当你clone到本地后,再进行hexo init 时,刚才clone的仓库版本控制信息会丢失,造成无法push

所以我是这么弄的 [道行尚浅,还没想到好办法]

  • clone 库到本地一个空文件夹,那么文件夹名字一定是 username.github.io
  • 建立分支source,切换分支到source,将分支推送到远端,在github 修改默认分支为 source
  • 将刚才 hexo 本地生成博客的文件夹下的所有文件,都拷贝到,username.github.io 文件夹下[在分支source下操作]
  • 或[username.github.io下的所有文件拷贝到,刚才 hexo 本地生成博客的文件夹下],再用github客户端,Add本地库

然后,执行下列指令即可完成部署:

1
2
$ hexo generate
$ hexo deploy

之后,访问:username.github.io 浏览


两个分支如何维护呢?

我在公司电脑,搭建的hexo博客,并且部署到了github,回到家里我想修改文章,家里电脑刚新装gitnode

  • 因为在github有了两个分支,默认分支为source
  • clone到本地,hexo 千万不要执行 hexo init
  • 直接 hexo server 有可能会ERROR提示 npm install hexo --save ,按照即可 npm install
  • 然后就可以正常 hexo server啦,
  • 然后就可以正常 编辑啦
  • 然后就可以正常 hexo cleanhexo ghexo d

hexo常用命令(简写):

1
2
3
4
5
hexo n "我的博客" == hexo new "我的博客" #新建文章
hexo p == hexo publish #发布草稿
hexo g == hexo generate #生成静态网页
hexo s == hexo server #启动服务预览
hexo d == hexo deploy #部署

更多命令:https://segmentfault.com/a/1190000002632530


hexo 支持 markdown格式,有空还得去学习下 markdown