【问题标题】:wordpress+docker+apache mod proxy redirects to http://localhostwordpress+docker+apache mod 代理重定向到 http://localhost
【发布时间】:2020-09-11 20:49:15
【问题描述】:

我的环境是,可以通过 ip:port 访问在 apache 上运行 wordpress 的 docker 容器。主机环境有一个 apache 实例,它使用 mod proxy 将来自http://myurl 的流量重定向到localhost:port(我与同一主机中的其他 docker 容器进行了相同的设置,工作正常)。但是访问http://myurl(在更改wordpress 配置之后)只会将您重定向到本地主机(在wordpress 容器的apache 日志中,我可以看到它给出了301 来重定向您)。

只有当您访问基本 url 时才会出现问题。 (http://myurl/wp-login.php 有效)

托管 Apache 配置:

<VirtualHost *:80>
    ServerName my.url.com
<IfModule mod_proxy.c>
ProxyRequests Off
ProxyPass         /   http://localhost:8080/
ProxyPassReverse  /   http://localhost:8080/
</IfModule>
</VirtualHost>

这有效(wp-config.php):

define('WP_HOME','http://8.8.8.8:8080');
define('WP_SITEURL','http://8.8.8.8:8080');

这不是

define('WP_HOME','http://my.url.com');
define('WP_SITEURL','http://my.url.com');

这些是我启用的 wordpress 插件。但请注意,我也相应地更改了他们的配置。

  1. wp-support-plus
  2. 管理员自定义登录

更新: 这似乎在一定程度上解决了这个问题。

define('WP_HOME','http://8.8.8.8:8080');
define('WP_SITEURL','http://my.url.com');

一些组件(主页按钮等)仍然适用于ip:port,但系统可以正常工作。

【问题讨论】:

  • 好的,这显然是 docker 版本的 Wordpress 的问题。我只是花了几个小时试图解决这个该死的问题,最后提取了数据库和 wp-content 文件夹的内容,然后在没有血腥 docker 的情况下重新创建了 wordpress。
  • @IvicaPesovski 我使用答案解决了这个问题

标签: php wordpress apache docker mod-proxy


【解决方案1】:

原来问题是发生重定向时标题被剥离。我通过将 ProxyPreserveHost On 添加到主机 apache 配置来解决此问题。更改后的文件现在看起来像这样。

托管 Apache 配置:

<VirtualHost *:80>
    ServerName my.url.com
<IfModule mod_proxy.c>
ProxyRequests Off
ProxyPreserveHost On # needed if you need to pass the original host header
ProxyPass         /   http://localhost:8080/
ProxyPassReverse  /   http://localhost:8080/
</IfModule>
</VirtualHost>

【讨论】:

  • 我一直在为此烦恼。谢谢@Sudh33ra
猜你喜欢
  • 2021-04-14
  • 2015-10-10
  • 1970-01-01
  • 2018-03-08
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 2011-05-06
  • 2019-07-23
相关资源
最近更新 更多