我是WP菜鸟,但必须修复现有wp网站上的一些错误。我不想在实时环境中执行此操作,因此我尝试在docker(apache,php,mysql ...都具有与实时环境类似的版本)中对其进行镜像。
访问此本地站点时,我将获得302重定向到实时站点
我在wp-config.php的开头添加了
define( 'WP_HOME', 'http://localhost:8180' );
define( 'WP_SITEURL', 'http://localhost:8180' );
但是还是一样。 有什么想法吗?
这里是评论中要求的完整wp-config.php
<?php
/** changing the site url (https://codex.wordpress.org/Changing_The_Site_URL) */
define( 'WP_HOME', 'http://localhost:8180' );
define( 'WP_SITEURL', 'http://localhost:8180' );
define('AUTOMATIC_UPDATER_DISABLED',true);
define('DB_NAME', 'replaced');
define('DB_USER', 'replaced');
define('DB_PASSWORD', 'replaced');
define('DB_HOST', 'db:3306');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('AUTH_KEY', 'replaced');
define('SECURE_AUTH_KEY', 'replaced');
define('LOGGED_IN_KEY', 'replaced');
define('NONCE_KEY', 'replaced');
define('AUTH_SALT', 'replaced');
define('SECURE_AUTH_SALT', 'replaced');
define('LOGGED_IN_SALT', 'replaced');
define('NONCE_SALT', 'replaced');
$table_prefix = 'wp_';
define('WPLANG', 'de_DE');
define('WP_DEBUG', true);
if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
/* fixes safe_mode problems */
define('WP_TEMP_DIR', ABSPATH . 'wp-content/');
我使用xdebug跟踪了运行的代码。由于数据库条目(选项表)“ _ transient_pll_languages_list”,重定向转到了实时站点。它将URL缓存到实时站点。 由于它称为瞬态,所以我只是将其删除。现在,我仍然具有重定向(现在为301),但是重定向到我的本地站点。所以现在我有了一个反馈循环。
我想我接下来将搜索并删除所有“瞬态”条目。 是否有更简单的方法从数据库中删除所有缓存的数据?
答案 0 :(得分:1)
我在本地开发现有的WordPress网站时也有相同的要求,因此我创建了此存储库:https://github.com/lumonald/existing-wordpress-development-docker
您可以禁用.env
文件中的所有缓存插件,它会自动为您查找/替换数据库中的URL。
它会为您在后台处理wp-config.php
,但是,如果您需要对其进行编辑,则可以将其作为卷添加到docker-compose.yml
内的WordPress容器中
请记住,这使用的是最新版本的WordPress,但是可以在docker-compose.yml
文件中进行更改,如果需要,可以在MySQL版本中进行更改。
答案 1 :(得分:0)
我还没有使用过docker,但是根据我的说法,以下代码缺少文件夹名称。
define( 'WP_HOME', 'http://localhost:8180' );
define( 'WP_SITEURL', 'http://localhost:8180' );
应该是
define( 'WP_HOME', 'http://localhost:8180/foldername/' );
define( 'WP_SITEURL', 'http://localhost:8180/foldername/' );
否则,您可以直接在wp_options表中更改URL,将siteurl和home更改为实际URL。另外,请尝试清除缓存文件夹或禁用缓存插件(如果存在)。
我希望这可以解决您的问题。
致谢
答案 2 :(得分:0)
我不知道到底是什么问题,但是在停用SEO插件后问题就消失了。再次激活SEO插件后,该站点仍然可以正常工作。 因此,我猜这是某种插件缓存问题。