打开浏览器访问一个网站,地址栏突然跳转到带 https 的链接,这就是 301 重定向在起作用。尤其现在搜索引擎和浏览器都在推 HTTPS,把 HTTP 流量自动引导到 HTTPS 已经成了标配操作。
为什么要做 HTTPS 的 301 重定向?
简单说,为了安全和排名。HTTP 是明文传输,中间谁都能“偷看”数据;而 HTTPS 加密了,用户输密码、填表单都更安心。Google 等搜索引擎也明确表示,启用 HTTPS 的网站会获得轻微排名加成。更重要的是,不做重定向的话,同一个页面存在 http 和 https 两个版本,容易被当成重复内容,影响收录。
常见的服务器配置方法
大多数网站跑在 Nginx 或 Apache 上,下面是最常用的两种配置方式。
Nginx 配置示例
在站点的 server 块中添加判断,将所有 HTTP 请求永久重定向到 HTTPS:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /path/to/your/certificate.pem;
ssl_certificate_key /path/to/your/private.key;
# 其他站点配置...
}
Apache 配置示例
使用 .htaccess 或虚拟主机配置文件,通过 mod_rewrite 模块实现跳转:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
注意 R=301 表示永久重定向,浏览器和搜索引擎都会缓存这个跳转,后续直接访问 HTTPS,减少一次请求延迟。
别忘了 SSL 证书要配好
只写重定向还不行,https 能否打开,关键还得看证书是否有效。推荐用 Let's Encrypt 免费申请,配合 certbot 自动续期。如果证书过期或域名不匹配,用户会看到“不安全”警告,跳转做得再顺也没用。
上线前检查几件事
- 确认旧的 http 链接全部能跳转,特别是首页、栏目页和重要落地页;
- 用手机和电脑不同浏览器测试,避免缓存误导判断;
- 在百度搜索资源平台或 Google Search Console 中提交新的 https 版本站点。
某次朋友运营的电商站换了 HTTPS 后没做重定向,结果老客户从微信历史记录点进去还是 http 页面,提示加载不安全资源,订单直接掉了两成。后来补上 301 跳转,流量才慢慢恢复。这类问题小,影响可不小。