如何解决Vue应用部署在Nginx上访问非HTTPS时出现过多重定向的问题
问题根因
你当前的Nginx配置存在3处错误,直接导致HTTP请求进入重定向循环:
- 80端口的server块仅配置了
www.digyt.co作为服务名,没有覆盖根域名digyt.co的HTTP请求 - 跳转规则中错误使用了
$scheme变量,该变量会继承用户当前请求的协议,导致HTTP请求进来还是跳转到HTTP地址,没有完成HTTP到HTTPS的强制跳转 - return 301指令后多余添加了
permanent参数,该参数属于rewrite指令的专属参数,用在return中会导致语法逻辑异常
修复方案
1. 替换80端口server块配置
server { listen 80; listen [::]:80; server_name www.digyt.co digyt.co; # 所有HTTP请求统一跳转至HTTPS根域名,保留原请求路径 return 301 https://digyt.co$request_uri; }
2. 修正443端口监听配置
把原443块中的IPv6监听行补充ssl参数,避免IPv6访问异常:
listen 443 ssl; listen [::]:443 ssl;
3. 生效配置
执行以下命令验证配置正确性并重载Nginx:
# 测试配置语法 nginx -t # 重载Nginx systemctl reload nginx
4. 验证效果
清理浏览器缓存后重新访问HTTP版本的站点,确认重定向逻辑正常。
内容的提问来源于stack exchange,提问作者Christopher Clemmons
相关产品推荐
相关产品推荐

