状况:
- 服务器:阿里云 轻量应用服务器
- 源服务器A:阿里云直建WordPress(无服务器运维管理面板)
- 目标服务器B:阿里云宝塔面板,面板建立WordPress
复现:
从服务器A迁移WordPress网站到服务器B,域名同一个,服务器不同。
使用wpvivid插件完整备份网站内容和数据库,再在目标服务器B使用插件还原网站。
问题:
WordPress迁移后,后台和首页正常打开,但是内容页的所有链接都404错误。
尝试方法1:
登录WordPress后台,“设置”—“固定链接”—选择其他url链接格式—保存,再重新设置回自己原先的设置/想要的设置,404问题解决。
在搜寻解决办法的时候,很多人通过这个方法解决了内容页404问题。
但是我没有成功。尝试其他办法。
尝试方法2:
第一步:
查看WordPress文件根目录,是否有.htaccess文件,没有的话可以新建一个,整体文件名字叫:.htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
把以上内容复制进文件。
第二步:
Nginx的rewrite中写入以下代码:
location /
{
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
或者宝塔面板中,对站点的伪静态添加以上代码,图片案例如下:

PS:如果伪静态不能添加,就去 /www/server/panel/vhost/rewrite 这个目录下,找到相应的网站配置文件,将上面的配置信息粘贴到里面并保存。
最后可以把nginx重启一下,或者整个服务器重启一下。
解决:
最后使用第二种方法解决了404问题。
但是这个不能解决站点地图404的问题。
目前完美解决:
我使用Rank Math插件来辅助SEO。如果使用Rank Math插件,并且使用RM生成sitemap站点地图,需要在RM插件的dashboard中关闭sitemap功能,再启动。这样站点地图就能正常打开,不会404了。
至此,完全解决WordPress迁移404的问题
