
一、背景说明
博客运行在 腾讯云轻量应用服务器(Lighthouse) 上,使用 Typecho 作为博客系统。
当前状态是:
- http://mcetf.cn 可以访问
- https://mcetf.cn 也可以访问
这在安全和 SEO 上都不理想,因此目标是:
强制所有 HTTP 请求跳转到 HTTPS,并统一域名入口为 https://mcetf.cn
二、运行环境确认
1. 确认 Web 服务类型
ps -ef | grep nginx输出显示:
- 使用的是 Nginx
- 路径为 Lighthouse 自带版本:
/usr/local/lighthouse/softwares/nginx/三、定位 HTTP(80)入口配置
1. 搜索 80 端口配置
grep -R "listen 80" -n /usr/local/lighthouse/softwares/nginx/conf关键结果:
/usr/local/lighthouse/softwares/nginx/conf/include/typecho.conf:2: listen 80 default_server;说明:
- HTTP 的入口在 typecho.conf
- 且是 default_server,会兜底接管所有 HTTP 请求
2. 查看原始配置内容
sed -n '1,160p' /usr/local/lighthouse/softwares/nginx/conf/include/typecho.conf原配置中:
- HTTP 下仍在跑 PHP、rewrite
- 这正是 http://mcetf.cn 还能访问的原因
四、HTTPS 配置确认(无需修改)
域名 HTTPS 已经单独配置在:
- /usr/local/lighthouse/softwares/nginx/conf/include/mcetf.cn.conf
- /usr/local/lighthouse/softwares/nginx/conf/include/www.mcetf.cn.conf
这两个文件:
- 只监听 443 ssl
HTTPS 本身工作正常
👉 原则:HTTPS 配置不动,只处理 HTTP 跳转
五、实施方案设计
目标逻辑
最终访问路径应为:
- http://mcetf.cn → 301 → https://mcetf.cn
- http://www.mcetf.cn → 301 → https://mcetf.cn
- https://www.mcetf.cn → 301 → https://mcetf.cn
- 唯一正式入口: https://mcetf.cn
六、实施步骤
1. 备份原配置(重要)
cp /usr/local/lighthouse/softwares/nginx/conf/include/typecho.conf \
/usr/local/lighthouse/softwares/nginx/conf/include/typecho.conf.bak.$(date +%F_%H%M%S)2. 修改 HTTP 配置为强制跳转
编辑文件:
vi /usr/local/lighthouse/softwares/nginx/conf/include/typecho.conf替换为以下内容:
server {
listen 80;
server_name www.mcetf.cn;
return 301 https://mcetf.cn$request_uri;
}
server {
listen 80 default_server;
server_name mcetf.cn;
return 301 https://mcetf.cn$request_uri;
}说明:
- www 直接一跳到裸域(避免两次 301)
- default_server 兜底所有 HTTP 请求
- HTTP 下不再执行 PHP / rewrite,更安全
3. 检查并重载 Nginx
/usr/local/lighthouse/softwares/nginx/sbin/nginx -t
/usr/local/lighthouse/softwares/nginx/sbin/nginx -s reload七、验证结果
HTTP 跳转验证
curl -I http://mcetf.cnHTTP/1.1 301 Moved Permanently
Location: https://mcetf.cn/curl -I http://www.mcetf.cnHTTP/1.1 301 Moved Permanently
Location: https://mcetf.cn/HTTPS 域名统一验证
curl -I https://www.mcetf.cnHTTP/1.1 301 Moved Permanently
Location: https://mcetf.cn/✅ 达成目标:HTTPS + 单一域名入口
**八、Typecho 侧的补充设置
为避免后台或文章生成 http:// 链接,建议:
- 在 Typecho 后台 「设置 → 基本设置」
- 将站点地址修改为:
https://mcetf.cn/九、最终状态总结
| 访问方式 | 结果 |
|---|---|
| http://mcetf.cn | 301 → https://mcetf.cn |
| http://www.mcetf.cn | 301 → https://mcetf.cn |
| https://www.mcetf.cn | 301 → https://mcetf.cn |
| https://mcetf.cn | ✅ 正常访问 |