【问题标题】:siteurl change in wordpress ( changed in DB), but links still pointing to prior urlwordpress 中的 siteurl 更改(在 DB 中更改),但链接仍指向先前的 url
【发布时间】:2017-04-27 16:35:19
【问题描述】:

我为客户安装了 Wordpress,她更改了域名。 因为以前的域注册失效了,我不能再从它以前的域访问该站点的任何部分,所以我将虚拟主机更改为我的一个域的子域以现在访问它,但只能获取它的主页,所有菜单链接指向一些垃圾广告,现在停在她以前的域名上。 因此,我进入 Maria DB 并将 wp_options 表中的 siteurl 更新为新的子域,但没有任何改变,仍然从站点主页上的任何链接链接到垃圾邮件停放的广告,甚至是 site.tld/wp-admin。 php 和 site.tld/wp-login.php。 是否存在,因为我无法访问在线/gui 管理内容,数据库中的其他地方我可以或需要更改某些内容以更新所有内部链接以在新域上运行?自从几个月前域名失效之前,WP 就没有更新过(客户不付款,我不更新域名注册... 提前感谢任何和所有帮助。 谢谢, 哦...我在 Debian Jessie 上使用 MariaDB...或者等等,服务器仍在运行。

【问题讨论】:

  • 在 wp-config.php 中找不到任何看似相关的内容
  • 您是否更改了域 dns ?如果你这样做了,它们可能还没有传播。您可以尝试通过访问 /wp-admin/edit.php 之类的管理页面来强制执行。
  • 回复:DNS - 我只为子域添加了一条 A 记录,但 ping 已经显示 DNS 指向我的服务器。

标签: mysql wordpress debian mariasql


【解决方案1】:

您还应该更新 wp_options 表上的 home 选项以匹配新域,而不仅仅是 siteurl

【讨论】:

  • 这似乎已经解决了这个问题。 :-) 谢谢,克里斯蒂亚诺!
  • 太棒了。很高兴我能帮助你。这是您的站点再次运行所需的最低要求,但您至少应该更新 guid,正如 Yahya Hussein 所建议的那样。如果您使用 WordPress 提要,这一点很重要
  • 说得太早了,这让我进入了一些页面,但其他页面,没有,也没有博客文章,这些页面仍然被重定向,但至少没有被重定向到垃圾广告!,只是到顶级域在我的服务器上,其中新的 url 是一个我无法弄清楚的子域,因为我在同一个域的子域上有其他站点运行良好,我在虚拟主机中找不到任何显着差异,或者其他任何东西我可以确定这会导致网站被重新路由到顶层......我很难过,但是,至少问题已经改变了,就是这样。
  • 等等,它停止工作了......我不知道为什么,我做了 a2dissite 和 a2ensite $site,并重新加载了 apache2,现在子域根本没有被路由到正确的目录...... .也许是时候提出一个新问题了。
【解决方案2】:

如果您已将您的 wordpress 网站移至新域,您所要做的就是在您的数据库中一一运行这些查询

update `wp_posts` set post_content = replace(post_content,'http://oldurl','http://newurl');
update `wp_posts` set guid = replace(guid ,'http://oldurl','http://newurl')
update `wp_options` set option_value = replace(option_value,'http://oldurl','http://newurl')

【讨论】:

  • 当我现在什至无法加载网站主页时,我认为这不会有帮助...
  • 这是因为您的数据库中的 url 错误,就这样做吧,我已经移动了两个很多 wordpress 网站,这对他们所有人都有效
  • @tonybaldwin 你应该试试这个。除非您使用多站点安装,否则我的回答足以让站点再次运行,但是需要更新 guid(修复提要)和 post_content(还有 post_excerpt 和任何可能包含带有链接或图像的文本的元数据)完全修复 WordPress 安装。
  • @tonybaldwin 也有可能 postmeta 表上的某些数据被序列化,因此简单的 SQL 替换将不起作用。您将需要一个脚本。
【解决方案3】:

尝试使用 wp-cli。转到终端中的 WP 根文件夹并运行以下命令:

wp search-replace "old-domain.tld" "new-domain.tld"

如果是多站点安装,请使用标志--network

这应该会替换数据库中所有现有的 url。

您还可以添加标志 --dry-run 以查看有关正在发生的事情的报告,而无需将更改保存到您的数据库中。

更多信息: https://developer.wordpress.org/cli/commands/search-replace/

别忘了查看您的wp-config.php

【讨论】:

    猜你喜欢
    • 2016-12-05
    • 2016-03-20
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 2017-06-22
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多