Wordpress localhost:8080始终重定向到localhost:3000

Wordpress localhost:8080始终重定向到localhost:3000,wordpress,macos,docker,localhost,browser-sync,Wordpress,Macos,Docker,Localhost,Browser Sync,我有一个带有Docker的WordPress开发环境。非常简单,只有docker使用Wordpress和MySQL编写 这是我的docker撰写文件。一切都很完美,首先我可以在localhost:8080中看到我的WordPress version: '3.1' services: wordpress: image: wordpress restart: always ports: - 8080:80 volumes: - /Use

我有一个带有Docker的WordPress开发环境。非常简单,只有docker使用Wordpress和MySQL编写

这是我的docker撰写文件。一切都很完美,首先我可以在localhost:8080中看到我的WordPress

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
我还使用带有Gulp的浏览器同步来实时重新加载站点。我在浏览器同步设置中配置了一个代理,然后我可以在localhost:3000中看到我的WordPress和我的\u local\u ip:3000,并进行实时重新加载

browsersync: {
    browser: 'google chrome',
    proxy: "localhost:8080",
},
问题是我在WordPress url设置中做了一些更改(然后我恢复了它),但现在重定向效果不好

  • 如果我尝试转到localhost:8080或my_local_ip:3000,浏览器总是重定向到localhost:3000,并显示“重定向过多”错误。(即使在BrowserSync和Docker关闭的情况下也不例外

  • 在Docker和BrowserSync运行的情况下,我的本地ip:3000/wp admin和本地主机:3000/wp admin运行得非常好,但我看不到我的博客localhost:3000始终显示错误


我已经尝试清除浏览器缓存,但没有解决它。我现在不知道是不是Docker、BrowserSync或MacOS(High Sierra是我的操作系统)的错误或错误配置。

使用此代码更改BrowserSync选项:

const browserSync = require('browser-sync').create(); // npm install browser-sync --save-dev

const
// source and build folders
dir = {
  watch: 'source-theme/',
  build: 'build-theme/'
},

// Browsersync options:
const syncOpts = {
  port: 3000, 
  proxy: 'http://mywebsite.ss',
  files: dir.watch + '**/*',
  open: true,
  notify: false,
  ghostMode: false,
  ui: {
    port: 8001, //default port 8080
    weinre: {
        port: 8002 //default weinre port 9090
    }
  },
};

// browser-sync task
gulp.task('browserSync', () => {
  browserSync.init(syncOpts);
});

想了解更多信息,我刚才遇到了同样的问题,并解决了它。以下是我的发现

WordPress使用
主机
标题来确定流量的来源,并根据设置的配置重定向流量

由于您使用BrowserSync作为代理,BrowserSync将请求发送到
localhost:8080
,而
Host
头值为
localhost:8080
,而不是从哪里发送请求

所以首先要做的是让BrowserSync使用正确的主机。我们可以像这样从原始请求中获取主机

proxy: {
    target: 'http://localhost:8080/',
    proxyReq: [
        function(proxyReq, req, res) {
                proxyReq.setHeader('Host', req.headers.host);
        }
    ]
},
接下来确保
WordPress地址(URL)
站点地址(URL)
URL在
WP Admin->Settings->General>中设置正确

[host:port]/wp admin/options general.php


应该这样做。至少对我有用。

我想问题出在你的Wordpress配置上。如果它正在工作,并且在您更改一些配置后开始循环重定向,那么肯定是Wordpress。我不是Wordpress的专家,但我知道Wordpress在数据库中保存了一些硬编码的URL。看看是否每个URL都配置正确。祝你好运是的,但奇怪的是,即使Docker容器(WordPress和MySQL)关闭,重定向也能工作。你尝试过“私有模式”吗?是的,但不能解决它清除缓存通常不能清除重定向(是的,这很痛苦)。您可以在控制台
fetch('http://localhost:{port},{method:'post'})。然后(()=>{})
哪个应该清除缓存。