直接答案
使用 RedirHub 重定向的域名无需设置 HTTP 到 HTTPS 规则:RedirHub 同时响应 http:// 和 https://,并将两者都发送到你的目标地址。对于你自己托管的网站,请在服务器或 CDN 上添加一条永久(301)规则,将 http:// 重定向到 https:// 上相同的 URL,并将其与你的 www 规则结合起来,这样访客就只需一次跳转。
| Item | Details |
|---|---|
| Goal | 每个 http:// URL 都会以 301 重定向到 https:// 上相同的 URL |
| 你需要 | HTTPS 端的有效证书,以及对你的服务器、CDN 或 CMS 设置的访问权限 |
| 重定向类型 | 301 Permanent |
在使用 RedirHub 重定向的域名上#
无需设置。一旦该域名的 DNS 指向 RedirHub,证书会自动签发,http://old-site.com/page 和 https://old-site.com/page 都会通过一次跳转重定向到你的目标地址。参见 自动 HTTPS。
在你自己的网站上#
先安装证书并检查 https:// 是否可用。然后添加以下规则之一。
Apache (.htaccess)#
apacheRewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Nginx#
nginxserver {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}Cloudflare#
在 SSL/TLS 中,打开 Edge Certificates 并启用 Always Use HTTPS。当你的源站拥有有效证书时,将 SSL/TLS 模式设置为 Full (strict);Flexible 模式与源站上的 HTTPS 规则一起使用会导致重定向循环。
WordPress#
在“设置”>“常规”中,将 WordPress 地址和站点地址改为 https://,然后添加上面的服务器规则。仅更改这些地址不会重定向旧的 http:// 链接。
如果你还会重定向 www,请避免出现两次跳转#
如果 http://example.com 先跳转到 https://example.com,然后再跳转到 https://www.example.com,这就是一个重定向链。请将规则写为让 http:// 和非规范主机直接跳转到最终 URL,或者让 RedirHub 处理你要重定向离开的主机;请参见 将非 www 重定向到 www。
结果#
| Request | Response | Lands on |
|---|---|---|
| http://www.example.com/pricing | 301 | https://www.example.com/pricing |
| http://example.com/pricing | 301 | https://www.example.com/pricing (one hop) |
| https://www.example.com/pricing | 200 | 页面本身 |
检查你的 HTTPS 重定向 跟踪 http://yourdomain.com,查看每一跳、其状态码以及 HTTPS 是否有效。
打开重定向检查器常见问题
301。迁移到 HTTPS 是永久性的,而 301 会告诉搜索引擎索引 https:// URL。
是的。RedirHub 会响应每个指向它的域名的 http:// 和 https://,并将两者都重定向到目标地址。
通常,处于 Flexible SSL 模式的 CDN 会用 HTTP 与你的服务器通信,而服务器会重定向到 HTTPS。请使用 Full(strict)模式,或者移除两个 HTTPS 规则中的一个。
