【运维SEO】宝塔面板中网站启用SSL证书后,这样设置301重定向更利于SEO

写在前面
最近,我对手头几个网站部署了免费ssl证书,
在宝塔面板系统中,网站站点开启了SSL 证书功能后,
需要设置了自动跳转,就是所有http页面跳转到对应https页面。
-----------------------------
那么问题来了。
网站站点中绑定了两个域名,一个加www,一个不加www,
例如:www.b53.net 和 b53.net。

------------------------------
现在应该怎么设置301重定向,让b53.net的页面重定向到www.b53.net对应的页面上,且利于SEO。
一般的方案会导致多次重定向,和https的强制重定向冲突了,部分浏览器可能直接显示重定向过多。
那么到底应该怎么设置,才能避免这种情况呢?
-------------------------------
要解决宝塔面板中实现HTTP→HTTPS重定向与域名规范化(www与非www统一)的冲突,
核心原则是在一次 301 跳转中同时完成两个目标(HTTP跳转到HTTPS + 无www跳转到www),
这样的话,可以避免分两次跳转导致的 “重定向过多” 问题。
-------------------------------------------------
解决方案
以下是针对宝塔面板(Nginx/Apache 两种主流环境)的具体解决方案,
步骤清晰可直接操作:
一、前期准备(必做):
1、SSL 证书需覆盖两个域名:
确保你的证书是「多域名证书」,同时包含 b53.net 和 www.b53.net。
否则直接访问 https://b53.net 会出现证书错误,导致重定向逻辑失效
(宝塔面板可申请 Let’s Encrypt 的免费多域名证书,申请时同时填入两个域名即可)。
2、关闭宝塔自带的“强制 HTTPS”:
进入宝塔面板 → 网站 → 对应站点 → 「SSL」选项卡,取消勾选「强制 HTTPS」
(自带的强制 HTTPS 会单独做一次 HTTP→HTTPS 跳转,与我们的自定义规则冲突)。

二、方案一:Nginx 环境(宝塔默认主流环境,请自行测试)
(1)操作步骤
1、进入宝塔面板 → 网站 → 对应站点 → 「设置」→ 「配置文件」(编辑 Nginx 配置)。
2、找到并修改「80 端口(HTTP)」和「443 端口(HTTPS)」的 server 块,替换为以下配置(直接复制粘贴,修改域名即可):
# --------------------------
# 1. HTTP协议(80端口):所有HTTP请求直接跳HTTPS+www
# --------------------------
server {
listen 80;
server_name b53.net www.b53.net; # 绑定两个域名的HTTP访问
# 核心规则:一次跳转完成 HTTP→HTTPS + 统一到www
return 301 https://www.b53.net$request_uri;
}
# --------------------------
# 2. HTTPS协议(443端口):仅处理www域名的HTTPS访问
# --------------------------
server {
listen 443 ssl;
server_name www.b53.net; # 只绑定www的HTTPS
# SSL证书配置(宝塔会自动生成,保留你自己的证书路径即可)
ssl_certificate /www/server/panel/vhost/cert/b53.net/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/b53.net/privkey.pem;
# 其他SSL优化配置(宝塔默认生成,保留即可)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# 网站根目录、PHP版本等配置(保留宝塔默认配置)
root /www/wwwroot/b53.net;
index index.php index.html index.htm;
# ... 其他默认配置(如location ~ \.php$ 等,不要删除)
}
# --------------------------
# 3. 处理直接访问 https://b53.net 的情况(可选但建议加)
# --------------------------
server {
listen 443 ssl;
server_name b53.net; # 绑定non-www的HTTPS
# 必须使用包含b53.net的证书(与上面一致)
ssl_certificate /www/server/panel/vhost/cert/b53.net/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/b53.net/privkey.pem;
# 直接跳转到HTTPS+www(一次跳转)
return 301 https://www.b53.net$request_uri;
}(2)配置说明
1、所有 HTTP 请求(无论b53.net 还是 www.b53.net)直接跳 https://www.b53.net(1 次跳转)。
2、直接访问 https://b53.net 时,因证书包含该域名,不会报错,直接跳 https://www.b53.net(1 次跳转)。
3、最终所有访问都通过 1 次 301 跳转 到达目标,无循环、无多次跳转。
三、方案二:Apache 环境(这是我使用的网站服务环境,已测试通过)
(1)操作步骤
1、进入宝塔面板 → 网站 → 对应站点 → 「设置」→ 「伪静态」。
2、选择「自定义」,删除原有内容,粘贴以下规则(或直接编辑网站根目录的 .htaccess 文件):
RewriteEngine On
# 核心规则:同时处理 HTTP→HTTPS 和 non-www→www(1次跳转)
RewriteCond %{HTTPS} off [OR] # 条件1:HTTP协议(未启用HTTPS)
RewriteCond %{HTTP_HOST} ^b53.net$ [NC] # 条件2:域名是non-www(忽略大小写)
RewriteRule ^(.*)$ https://www.b53.net/$1 [R=301,L] # 跳转目标,L表示终止后续规则
(2)配置说明
1、[OR] 表示两个条件满足一个即可触发跳转(要么是 HTTP,要么是 non-www 的 HTTPS)。
2、[NC] 表示忽略域名大小写(匹配 B53.NET、b53.net 等)。
3、[L] 表示执行完该规则后终止,避免后续规则干扰,确保一次跳转完成。
4、需确保 Apache 已启用 mod_rewrite 模块(宝塔默认启用,若未启用可在「软件商店」→「Apache」→「设置」→「模块」中开启)。
四、测试验证(关键步骤)
配置完成后,重启 Web 服务(Nginx/Apache),用以下方式测试是否生效:
1、访问 http://b53.net → 应直接跳 https://www.b53.net(1 次 301)。
2、访问 http://www.b53.net → 应直接跳 https://www.b53.net(1 次 301)。
3、访问 https://b53.net → 应直接跳 https://www.b53.net(1 次 301)。
通过网站工具测试301状态:
https://www.zhumengit.com/get_header.html
如下图所示:

五、常见问题排查
1、模块启用:
确保Apache的 rewrite_module (mod_rewrite) 已启用。在SSH中通常可以执行 sudo a2enmod rewrite (Ubuntu/Debian) 来启用,然后重启Apache。
2、循环重定向
检查是否同时存在HTTP和HTTPS的域名跳转规则,或SSL证书未正确绑定到www.b53.net。
3、HSTS缓存
若浏览器提示ERR_TOO_MANY_REDIRECTS,尝试清除HSTS缓存(Chrome设置 → 隐私 → 清除浏览数据 → 强制刷新)。
4、宝塔面板冲突
在宝塔面板中删除已配置的HTTP/HTTPS重定向规则,避免与虚拟主机配置冲突。
5、规则不生效:
原因:宝塔自带的「强制 HTTPS」未关闭,或规则顺序错误。
解决:彻底关闭「强制 HTTPS」,确保自定义规则在最前面(Nginx 的 80 端口 server 块优先,Apache 的规则在.htaccess 最顶部)。
好了,通过以上配置,可完美解决「HTTPS 自动跳转」与「non-www→www 重定向」的冲突,
确保所有访问都通过 1 次 301 跳转到达目标,
避免浏览器 “重定向过多” 的报错,
同时不影响 SEO。
温馨提示:因设置服务器站点配置的风险操作,请务必谨慎操作,后果自负。
免责声明:本站所发布信息部分整理自互联网具有公开性、共享性的信息,发布此信息旨在传播更多信息之目的,不代表本网站立场,转载请联系原作者并注明出处,如果侵犯了您的权益请与我们联系;本站提供的一切软件、教程和内容信息仅限用于学习和研究目的,无法保证有效性,真实性需自行辨别,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容;如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务,我们非常重视版权问题,如有侵权请邮件与我们联系处理,我们将在24小时内更正、删除。E-mail:admin@bsfc.net

