我有一个博客 (www.billoblog.com/wordpress),我正在尝试将其迁移到位于 www.forensicpath.us/wordpress 的新 vps。 我设法移动了 wordpress 目录并将配置文件更改为指向 forensicpath.us。 然后我将数据库移过来并得到一些奇怪的行为。
起初,博客的首页显示得很好,但是当我单击其中一篇文章时,它链接到旧博客网站(仍在运行)上的帖子。啊哈! 我说。 我必须更改永久链接。 因此,我转到已移动的 sql 文件,并使用 vim 将 billoblog.com 全局更改为 forensicpath.us。
现在,当我点击帖子时,它会显示我想查看的永久链接,例如https://www.forensicpath.us/wordpress/index.php/2024/09/19/pathology-cases-agenesis-of-the-corpus-callosum/而不是https://www.billoblog.com /wordpress/index.php/2024/09/19/pathology-cases-agenesis-of-the-corpus-callosum/ 但现在我得到 404 页面未找到。
有趣的是,我可以编辑页面——当我进入仪表板->帖子->编辑帖子时,会显示正确的信息。 我不知道它是在本地拉取的还是返回到 billoblog.com 或者什么。
显然,手动编辑sql备份文件可能不是最聪明的事情,但我不知道如何更新永久链接和永久链接应该指向的数据。 我被难住了。
它可以是永久链接设置、Web 服务器 (nginx) 配置、Wordpress 设置中的一项或任意一项。 几年前我一直这样做!
备份站点的 sql 文件/数据库、wp-config.php 和 nginx 配置,并将它们保存在合适的位置,例如您的主文件夹。然后你可以尝试一些事情。
以下是解决该问题的一些步骤:
如果使用 WP-CLI(假设它安装在新服务器上):
wp search-replace 'https://www.billoblog.com/wordpress' 'https://www.forensicpath.us/wordpress' --all-tables
或者再次打开文本编辑器并在 sql 文件中搜索。 也许遗漏了一些东西?
location /wordpress {
try_files $uri $uri/ /wordpress/index.php?$args;
}
另外,如果您使用一些默认前缀来处理 .php:
location ~ \.php$ {
fastcgi_split_path_info ^(/wordpress)(/.*)$;
}
如果以前是:
location ~ \.php$ {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
}
记住重新加载您的 nginx 配置并重新启动它。
define('WP_HOME','https://www.forensicpath.us/wordpress');
define('WP_SITEURL','https://www.forensicpath.us/wordpress');