Wordpress网站搬迁后,样式乱码、部分页面打不开怎么办?

徐伟轩

继续上次的文章“Wordpress网站SQL 查询错误:#1273 - Unknown collation: 'utf8mb4_unicode_520_ci'咋解决?

我在帮客户进行功能二次开发时候,遇到的相关问题,都记录下来,也便于大家在遇到相似问题时候,能够快速找到办法解决。

 

搞定了数据相关问题后,我发现网站在本地或者测试服务器上,已经能正常打开。

不过,好像也只是看起来正常!

因为当我随便打开一个栏目或者一篇文章的时候发现,404了。🤣

很多的栏目打开是没有内容,也有的文章打开是为空的。

这样的问题,大家猜测一下可能是什么原因?

其实是伪静态,咱们加上wordpress的伪静态规则即可,如下是Nginx配置指令:

location /
{
try_files $uri $uri/ /index.php?$args;
}


rewrite /wp-admin$ $scheme://$host$uri/ permanent;

 

而有些页面甚至是出现乱码,页面布局直接是错乱排布的,完全没有任何格式可言。

😂那又是什么地方出问题了呢?

F12查看下呗:

好家伙,CSS、js、img等位置,全部还直接链接到客户以前的网站域名。

那显然是不行的,我也看不到效果,更别提进行下一步的评估和功能开发了。

 

也可能呢,客户以前找的开发公司也做了一定的安全机制。因为,无论是我在本地进行测试,还是在服务器进行,同样会遇到一个问题:

无法登录WordPress后台(即使客户已经明确告知了账号、密码)

 

那么还能咋整呢?

通过数据库吧,使用phpMyAdmin通过SQL语句进行内容替换。

UPDATE wp_options SET option_value = replace(option_value, 'https://老域名', 'http://新域名') 
WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = replace(post_content, 'https://老域名', 'http://新域名');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'https://老域名', 'http://新域名');

 

有一部分老的域名被替换好了,但是还有很多地方是老的域名。能不能通过SQL进行全部数据替换?

通过下面的SQL语句就行了:

UPDATE wp_options SET option_value = replace(option_value, 'http://老域名', 'http://新域名');
UPDATE wp_posts SET post_content = replace(post_content, 'http://老域名', 'http://新域名');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://老域名', 'http://新域名');

这些查询会在WordPress数据库中的所有相关表中搜索包含旧域名的内容,并将其替换为新域名。

 

至此,网站在新域名或者本地测试均能正常打开,并且数据也没有任何问题了。

评论
AI机器人本条评论,由Ai智能生成
换语言
中文
русский
English
Deutsch
Français
Српски
Español
Malaysia
한국어
日本語
Tiếng Việt
ไทย