要让云主机上的网站默认使用 HTTPS(即用户访问 HTTP 时自动跳转到 HTTPS),核心原理是在服务器上配置301 重定向,具体实现方式取决于你使用的 Web 服务器软件(如 Nginx、Apache)或云服务商的负载均衡/CDN。

以下是几种最常见且安全的配置方法:
- 你的云主机上已经成功安装了 SSL 证书,并且网站可以通过https:// 正常访问。
- 确保 80 端口(HTTP)在云主机的安全组/防火墙中开放。
方法一:使用 Nginx(最推荐,性能好)
Nginx 是目前最主流的 Web 服务器,编辑你的网站配置文件(通常位于/etc/nginx/conf.d/ 或/etc/nginx/sites-enabled/):

server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
# 将所有 HTTP 请求永久重定向到 HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name yourdomain.com www.yourdomain.com;
# SSL 证书配置(替换为你的实际路径)
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/private.key;
# 其他配置项(网站根目录、PHP 处理等)
root /var/www/html;
index index.php index.html;
# ... 你的网站逻辑
}保存后执行:
nginx -t # 测试配置文件语法 systemctl reload nginx # 重载配置生效
编辑网站配置文件(如/etc/httpd/conf.d/yourdomain.conf 或/etc/apache2/sites-available/yourdomain.conf):
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName yourdomain.com
DocumentRoot /var/www/html
# SSL 配置
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/private.key
# 其他配置
<Directory /var/www/html>
AllowOverride All
</Directory>
</VirtualHost>保存后执行:
apachectl configtest # 检查语法 systemctl reload httpd # 重载使生效
方法三:使用云服务商的负载均衡 / CDN(推荐生产环境)
如果你用了阿里云 SLB、腾讯云 CLB、AWS ELB 或 Cloudflare,可以直接在云控制台配置:

1、在监听器层面设置重定向(以阿里云 SLB 为例):
- 在 SLB 控制台,为 HTTPS 监听器(443 端口)添加一条重定向规则,将源协议 HTTP(80)全部 301 重定向到 HTTPS(443)。
2、使用 Cloudflare 等 CDN:
- 在 Cloudflare SSL/TLS 设置中,开启Always Use HTTPS 开关,它会自动处理所有 HTTP 到 HTTPS 的跳转,无需改动服务器。
>优点:将重定向压力转移到云网络层,减少服务器计算资源消耗。
方法四:代码层面强制跳转(不太推荐,备份方案)
如果你无法修改 Web 服务器配置(如虚拟主机不支持),可以在网站程序入口(如index.php 或.htaccess)中添加:
PHP 示例(放在网站根目录):
<?php
if ($_SERVER[‘REQUEST_SCHEME’] !== ‘https’) {
header(‘Location: https://’ . $_SERVER[‘HTTP_HOST’] . $_SERVER[‘REQUEST_URI’]);
exit;
}Nginx 配合 .htaccess 不适用,注意:.htaccess 仅用于 Apache。
跳转后出现重定向循环:通常因为 CDN 也配置了跳转,或服务器同时配置了强制 HTTPS 跳转,检查是否只有一层重定向。
跳转显示不安全:SSL 证书配置错误(如使用了自签名证书或域名不匹配),确保证书覆盖yourdomain.com 和www.yourdomain.com。
只能跳转到首页,无法保持原路径:Nginx 的$request_uri 变量会保留路径和参数,确保使用了该变量(如return 301 https://$server_name$request_uri;)。
1、新手:优先用云服务商的负载均衡/CDN 控制台配置,只需点几下按钮。
2、有服务器管理经验:用 Nginx 配置,代码可维护性高。
3、务必测试:配置生效后,访问http://yourdomain.com/any-page 看是否跳转到https:// 版本,且 URL 路径不变。
如果还是搞不定,可以再告诉我你用的是哪种云主机、什么建站程序(WordPress/LNMP 等),我可以给你更具体的命令。
文章摘自:https://idc.huochengrm.cn/zj/26122.html
评论