我们有一个 Wordpress .sql 备份,我们在 Linux 机器上恢复了它。现在我们要登录管理控制台并将网站导出为 XML。
不幸的是,wp-login.php 重定向到旧的弃用域名。
也许我可以添加一个 /etc/hosts 条目?或者有办法绕过登录页面吗?
TIA,伯特兰
答案1
您需要进入 MySQL 数据库并更新 siteurl 选项:
mysql -u wordpressuer -p wordpressdbname
Enter password: (password)
mysql> update wp_options set option_value='http://new.url.name.com' where option_name='siteurl';
exit;
这样您就可以登录并更改任何其他选项。
有关更多信息,请参阅 WordPress 代码:
答案2
WordPress 网站将自己的 URL 存储在数据库中,因此移动它们可能很麻烦。您实际上可以通过将这两个常量添加到来覆盖它wp-config.php
:
/** Settings to keep this working on any domain name */
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
或者,如果 WordPress 安装在名为的子文件夹中blog
:
/** Settings to keep this working on any domain name */
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/blog');
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/blog');
这比在数据库中编辑域名要容易得多,因为 WordPress 以 PHP 格式将其许多配置设置存储在数据库中serialize
,不适合手动编辑。
这些设置将使网站在新位置基本正常运行,并且肯定允许您登录。但是,WordPress 还将内部链接(指向图像、其他页面等)存储为完整 URL。因此,现在您需要扫描数据库以查找此类链接并更新它们以适应新网站位置。您可以再次手动执行此操作,但这很麻烦,所以我使用了一个名为Velvet Blues 更新 URL*.
即使您不更改域名,这种事情也是有用的:只需从 HTTP 移动到 HTTPS 就需要这样做。
* Velvet Blues 是一家商业公司。我与他们没有任何关系,对他们一无所知,只知道这个插件很好用。