我有一个Docker 的 WordPress开发环境。如此简单,只有docker与Wordpress和MySQL组成。
这是我的docker-compose文件。一切都完美无缺,起初我可以在本地主机上看到我的WordPress:8080 version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
volumes:
- /Users/ivan/Developer/theme:/var/www/html/wp-content/themes/theme
environment:
WORDPRESS_DB_PASSWORD: password
mysql:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
我还使用gut_strong与Gulp浏览器同步来实时重新加载站点。我在浏览器同步设置中配置了代理,然后可以通过实时重新加载在 localhost:3000 和my_local_ip:3000中看到我的WordPress。
browsersync: {
browser: 'google chrome',
proxy: "localhost:8080",
},
问题是我在WordPress网址设置中做了一些更改(然后我将其还原了),但是现在重定向工作不正常。
我已经尝试清除浏览器缓存,但没有解决。我现在不是 Docker , BrowserSync 或 MacOS 的错误或错误配置(High Sierra是我的操作系统)
最佳答案
我刚才遇到了同样的问题,并已解决。所以这是我的发现。
WordPress使用Host
header 确定流量的来源,并根据配置集将其重定向。
由于您将BrowserSync用作代理,因此BrowserSync会以localhost:8080
header 值为Host
的形式向localhost:8080
发送请求,而不是从何处发送请求。
所以首先要做的是让BrowserSync使用正确的主机。我们可以像这样从原始请求中获取主机
proxy: {
target: 'http://localhost:8080/',
proxyReq: [
function(proxyReq, req, res) {
proxyReq.setHeader('Host', req.headers.host);
}
]
},
接下来确保
WordPress Address (URL)
和在
Site Address (URL)
中正确设置了WP-Admin -> Settings -> General
网址[host:port]/wp-admin/options-general.php
那应该做。至少为我工作。
关于wordpress - 本地主机:8080始终重定向到本地主机:3000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49007302/