继续上次的文章“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数据库中的所有相关表中搜索包含旧域名的内容,并将其替换为新域名。
至此,网站在新域名或者本地测试均能正常打开,并且数据也没有任何问题了。