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

本地Docker部署WordPress访问自定义域名自动跳转HTTPS问题求助

解决方案

问题根源

你遇到的问题由两个配置错误共同导致:

  1. 手动定义的WP_HOME和WP_SITEURL未携带实际访问的8080端口,和访问地址不一致触发WordPress自动重定向
  2. WORDPRESS_CONFIG_EXTRA中插入的配置加载顺序早于镜像自带的反向代理HTTPS判断代码,你设置的$_SERVER['HTTPS'] = 'off'会被后续镜像逻辑覆盖,并非PHP不允许该赋值操作

修复步骤

1. 修正站点地址配置

将WORDPRESS_CONFIG_EXTRA中的WP_HOME和WP_SITEURL修改为和实际访问地址完全一致的格式,补全8080端口:

WORDPRESS_CONFIG_EXTRA: |
  define('WP_HOME', 'http://wpsite.local:8080');
  define('WP_SITEURL', 'http://wpsite.local:8080');

2. 修复HTTPS设置不生效问题

选择以下任意一种方式即可:

  • 方式一(直接修改compose配置):在WORDPRESS_CONFIG_EXTRA末尾补充覆盖逻辑,利用镜像判断的规则强制关闭HTTPS:

    WORDPRESS_CONFIG_EXTRA: |
      define('WP_HOME', 'http://wpsite.local:8080');
      define('WP_SITEURL', 'http://wpsite.local:8080');
      // 本地无反向代理时强制关闭HTTPS,覆盖镜像默认设置
      if (!isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
          $_SERVER['HTTPS'] = 'off';
      }
    
  • 方式二(更稳妥,无加载顺序问题):通过必载插件(mu-plugin)强制设置
    在本地项目根目录新建mu-plugins/fix-https.php文件,内容如下:

    <?php
    $_SERVER['HTTPS'] = 'off';
    

    然后在docker-compose.yml的web服务volumes配置中新增挂载规则:

    volumes:
      - ./wordpress:/var/www/html:Z
      - ./secrets:/secrets:Z
      - ./mu-plugins:/var/www/html/wp-content/mu-plugins:Z
    

3. 重启容器生效

修改完配置后执行以下命令重启服务,清除浏览器缓存后即可正常访问http://wpsite.local:8080:

docker-compose down && docker-compose up -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:36:03