WP更改站点URL,但一些URL不起作用

时间:2019-05-01 作者:TommyPeanuts

我有一个WP安装,需要移动到一个新的网站URL。

我试过上面列出的常用方法this codex. 所有这些都会产生相同的问题。当我在网站上点击这样的链接时:

<a href="https://site.mydomain.com/path/to/post">

web服务器接收到的信息表示:

The requested URL /path/to/post/ was not found on this server.

即使我将URL粘贴到浏览器中也是如此。

请注意,某些URL确实可以工作,例如此CSS文件:

http://site.mydomain.com/wp-includes/css/dist/block-library/style.min.css?ver=5.1.1

但不是博客帖子。

EDIT with more info

当我查看页面的源代码时,我发现所有的HREF实际上都是正确的。但是,当单击时,指向帖子(但不指向CSS文件)的链接缺少“http://”前缀,而是呈现为服务器根相对URL。

因此,我对siteurl选项的更改is 正在制作中,但有关该网站的某些内容正在破坏一些(但不是全部)URL。

此后,我尝试了一次全新的WP安装,并为此更改了siteurlNOT 展示这个问题,所以我假设它是在这个网站的WP安装的东西。

Further forensics

即使尝试以下操作,问题仍然存在:

全部删除。htaccess文件停用所有插件,使用匿名模式查看

  • 使用另一个web浏览器加载网站(使用Chrome,安装并使用了新的Firefox安装)
  • 切换到不同的主题(二十一世纪)
  • 将其中一个断开的URL放入普通URL。html测试文件

  • 3 个回复
    最合适的回答,由SO网友:TommyPeanuts 整理而成

    permalink结构设置为“Post name”:

    http://site.mydomain.com/sample-post/
    
    将其设置为“普通”http://site.mydomain.com/?p=123, 已修复此问题。

    我不知道为什么post name会引起问题。当WP安装被移动到另一个web服务器时,vhost配置中没有Apache重写规则,所有其他设置都是相同的。我也无法解释最初安装中的post-name permalink结构是如何工作的。

    Wordpress的结局很奇怪,我永远也不会理解。谢谢大家的帮助,非常感谢。

    SO网友:Rick Hellewell

    最简单的(也是最恰当的,IMHO)是对wp选项表进行更改。使用wp配置中的update\\u选项。php不是正确的方法。(我不太喜欢更改wp-config.php文件中的值。)添加尾部斜杠可能会有所帮助(取决于您的主机和htaccess设置)。

    有关更改网站url的帮助,请参阅Codex。https://codex.wordpress.org/Moving_WordPress

    您需要使用搜索/替换过程来更改指向数据库中旧位置的任何硬链接。我使用了“更好的搜索和替换”插件,它工作得很好。(在进行更改之前,备份是很好的。)

    SO网友:JayTh

    删除现有数据库。再次导入它并尝试使用以下查询更新链接:

    UPDATE wp_options SET option_value = replace(option_value, \'http://www.oldurl\', \'http://www.newurl\') WHERE option_name = \'home\' OR option_name = \'siteurl\';

    UPDATE wp_posts SET guid = replace(guid, \'http://www.oldurl\',\'http://www.newurl\');

    UPDATE wp_posts SET post_content = replace(post_content, \'http://www.oldurl\', \'http://www.newurl\');

    UPDATE wp_postmeta SET meta_value = replace(meta_value,\'http://www.oldurl\',\'http://www.newurl\');

    参考号:Change and Update WordPress URLS in Database When Site is Moved to new Host