You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何强制Magento 2后台使用HTTP而非HTTPS?解决重定向过多问题

解决Magento 2.1.7后台强制HTTP时的重定向过多问题

遇到这种重定向循环问题,核心原因是服务器层(Nginx/Varnish)的HTTPS强制规则和Magento后台的HTTP配置冲突,导致请求在HTTP和HTTPS之间反复跳转。下面是一步步的排查和修复步骤:

1. 确认并修正Magento核心配置

首先确保Magento的后台URL配置完全指向HTTP,除了禁用web/secure/use_in_adminhtml,还要检查基础URL设置:

  • 执行以下命令行配置(替换成你的后台域名):
# 禁用后台使用SSL
bin/magento config:set web/secure/use_in_adminhtml 0
# 设置后台非安全基础URL为HTTP
bin/magento config:set web/unsecure/base_url http://your-admin-domain.com/
# 保持前台安全URL不变(若前台仍需HTTPS)
bin/magento config:set web/secure/base_url https://your-frontend-domain.com/
  • 强制清除所有缓存(包括Redis缓存):
bin/magento cache:flush
# 若Redis作为缓存存储,额外执行清空命令
redis-cli FLUSHALL

2. 修改Nginx配置,取消后台的HTTPS强制

检查你的Nginx站点配置文件(通常在/etc/nginx/sites-available/目录下),查找是否有针对后台路径(比如/admin)的HTTPS重定向规则,类似这样:

location /admin {
    return 301 https://$host$request_uri;
}
  • 将这段规则注释掉(添加#前缀)或直接删除
  • 重启Nginx使配置生效:
systemctl restart nginx

3. 调整Varnish配置,移除后台的HTTPS重定向

打开Varnish的VCL配置文件(通常是/etc/varnish/default.vcl),检查vcl_recv部分是否有针对后台路径的重定向逻辑,比如:

if (req.url ~ "^/admin") {
    set req.http.Location = "https://" + req.http.host + req.url;
    return (synth(301, "Moved Permanently"));
}
  • 删除或注释掉这段重定向代码
  • 重启Varnish服务:
systemctl restart varnish

4. 清除浏览器缓存测试

浏览器可能会缓存旧的重定向规则,导致测试结果不准确:

  • 清除当前浏览器的缓存和Cookie
  • 用无痕/隐私模式打开后台URL,验证是否能正常访问

完成以上步骤后,后台应该可以正常通过HTTP访问,不会再出现重定向循环问题。

内容的提问来源于stack exchange,提问作者Palanikumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:46:14