更换博客域名Nginx实现301跳转
更换博客域名Nginx实现301跳转
小码同学前言
我的博客域名一直是使用hikki.site
,但最近想换个域名了,想使用子域名blog.hikki.site
来当我的博客域名,只有我的二级域名hikki.site
还没想好用来做什么,我的博客在bing已经被收录了130多条,不考虑SEO的话,直接修改虽然对我的博客没有什么影响,但之前辛辛苦苦建立起来的SEO排名就白费了,所以,还是得考虑一下稍微完美一点的方法。
于是在寻找方法中发现了个方法可以达到我的要求,使用Nginx永久重定向,让搜索引擎爬虫在打开我之前的hikki.site
时自动跳转到我的blog.hikki.site
上,同时给我的子域名blog.hikki.site
申请SSL证书,使他支持HTTPS,起码得专业一点嘛,哈哈哈。
实现过程
- 创建子域名
blog.hikki.site
- 申请子域名
blog.hikki.site
的SSL证书 - 安装SSL证书
- 使用Nginx实现301永久重定向
- 修改Hexo博客根目录域名
- 将博客文章带有
https://hikki.site
的URL修改成https://blog.hikki.site
创建子域名
我的域名是在阿里云的万网注册的,打开域名解析,添加一条记录,参数如下:
- 主机记录:blog
- 记录类型:A
- 解析请求来源:默认
- 记录值:服务器IP地址
- TTL:10分钟(默认即可)
- 备注:博客blog
申请子域名证书
我这次一次性申请两个域名证书,使用acme.sh一次性申请多个域名是绑定一个SSL证书。
申请证书
我这里使用DNS验证方式,验证这个域名所有权是否归你所有,如果你从未使用过acme.sh证书,可以参考我这篇文章https://blog.hikki.site/2e63f4a4.html
1 | acme.sh --issue --dns dns_ali -d blog.hikki.site -d bookmark.hikki.site |
申请证书成功
安装SSL证书
创建文件夹存储证书
1 | mkdir /usr/local/nginx/conf/cert/blog-bookmark.hikki.site |
安装证书
我刚刚申请了两个域名证书,但颁布的证书只有一个,这一个证书其实blog和bookmark子域名都可以使用的,同时生成的证书名称是blog.hikki.site
1 | acme.sh --install-cert -d blog.hikki.site \ |
使用Nginx实现301永久重定向
原本我们还没修改blog.hikki.site
域名时,我们应该是有两个server块的,一个是监听80端口跳转到443端口的server块,一个是监听443端口的server块,用于代理我们的博客的,现在我们需要将这两个旧的server块都使用301永久重定向到我们的新子域名上blog.hikki.site
。
修改我们的旧server块
主要是修改几个地方:
- 修改80端口重定向的URL
- 删除监听443端口server块下的location块
- 在监听443端口的server块添加返回 301重定向URL
具体修改内容如下:
1 | # 当打开http://hikki.site时自动跳转到blog.hikki.site |
添加一个新的server块
这server块的作用是代理我们的博客,也就是监听443端口,如果有使用
blog.hikki.site
发起访问,则使用该server的规则。
1 | # blog.hikki.site 博客 |
修改Hexo博客根目录
打开本地Hexo博客根目录下的_config.yml
文件,修改URL为新域名(blog.hikki.site)
替换博客文件的旧URL
使用VS Code全局搜索替换,打开VS Code,左上角文件 --->打开文件夹--->选择博客根目录
,点击这个放大镜,可以进行全局搜索,搜索旧域名和新域名,替换掉,看根据文章内容替换,不需要替换的文件,可以选择忽略该文件。
参考