宝塔面板配置一个站点多个https

如果你有的网站最近改版,更换了域名,比如我的站点域名从dailywebzy.cn换成了mebi.me,主要考虑到国内备案的问题多有不便,以及新域名mebi.me更有含义(懵比),我就面临着原域名引流到新域名的问题,在宝塔面板上,这个问题简单,只需要将新旧域名同时绑定在同一个网站,同时解析到一个ip地址,然后旧域名做301跳转即可。但是更麻烦的是原域名dailywebzy.cn开启了https,怎么才能实现从https://dailywebzy.cn跳转到https://mebi.me,宝塔面板只能同时配置一个域名https。

宝塔面板提供可视化的图形操作界面,给使用者带来了一定便利,但是它不可能接管所有的操作,为了实现一个站点配置多个https,我们需要跳过面板直接修改代码。

配置多个https

第一步

/etc/letsencrypt/live/目录下存放着所有的网站证书,所以我们手动上传证书到该目录下。比如我要实现dailywebzy.cn的https访问,我到 /etc/letsencrypt/live/ 目录下新建同域名目录:dailywebzy.cn,然后上传文件到dailywebzy.cn目录下

第二步

修改站点的“配置文件”,这个文件被server包裹着,框架如下

server {
……
……
}

复制server包裹的代码,也就是复制所有代码,在这段代码下方另起一行粘贴,你的文件框架就成了如下所示:

server {
…….
…….
}
server {
…….
…….
}

宝塔面板配置一个站点多个https-懵比小站
如何找配置文件

找到复制的那一份代码,改动如下三行,每一行修改都有注释。证书路径和密钥路径即为第一步上传的文件路径。这里一个server控制一个域名,其中listen表示监听的端口,可以看到下面的server同时监听80端口和443端口,绑定的域名server_name为dailywebzy.cn

server
{
listen 80;
listen 443 ssl http2;
server_name dailywebzy.cn; //你的域名
……
……
#HTTP_TO_HTTPS_END
ssl_certificate /etc/letsencrypt/live/mebi.me/fullchain.pem; //证书路径
ssl_certificate_key /etc/letsencrypt/live/mebi.me/privkey.pem; //密钥路径
……
……
}

修改后保存即可。访问https://dailywebzy.cn正常,也没有出现安全警告,成功。如果保存出现如下问题,是因为你的证书路径写错了,请仔细修改路径。

宝塔面板配置一个站点多个https-懵比小站
证书路径出错

301重定向

最后我们需要实现访问dailywebzy.cn直接跳转到mebi.me上,从而达到旧域名顺利过渡到新域名的目的。301和302的区别就是:301是永久重定向,302是临时重定向,浏览器隔一段时间会重新请求dns服务器。

利用nginx的rewrite功能,在管理dailywebzy.cn域名的server代码中,添加如下代码,该段代码的含义为:如果用域名dailywebzy.cn访问本网站,则将链接重写(rewrite)到https://mebi.me上,这样的重写规则为永久(permanent)。

if ($host ~* dailywebzy.cn) {
rewrite ^/(.*)$ https://mebi.me permanent;
}

以上重写代码只涉及到域名层面,所以无需关注是否是http还是https,一律转发到mebi.me上。

再深入一步,比如原来我们有https://dailywebzy.cn/?p=123这个页面,上面的重定向配置完毕后,我们访问该页面会重定向到首页https://mebi.me,所以我们需要实现的是访问https://dailywebzy.cn/?p=123,直接跳转到https://mebi.me/?p=123,体验就会更好。我们只需要加入下面一段代码即可实现。

rewrite “/?p=(.*)$” https://mebi.me/?p=$1 last;

喜欢()
评论 (0)
热门搜索
homeagain
分享互联网最新资讯,分布各类教程:苹果cms、vps推荐、宝塔建站知识、edu邮箱、wordpress模板下载……只有你想不到,没有出不了的教程。
234 文章
162 评论
63 喜欢
Top