,WordPress 搬家后文章全部出现 404 错误,可能由多种原因导致,下面为你详细分析并给出对应的解决办法:
1. 数据库链接信息未更新
- 原因:搬家之后,新服务器的数据库信息(像数据库名、用户名、密码等)可能和旧服务器不一样,要是
wp-config.php
文件里的数据库连接信息没有更新,WordPress 就无法正常从数据库读取文章数据。 - 解决办法:打开新服务器上 WordPress 根目录下的
wp-config.php
文件,确认以下信息是否正确:
define('DB_NAME', '数据库名');
define('DB_USER', '数据库用户名');
define('DB_PASSWORD', '数据库密码');
define('DB_HOST', '数据库主机地址');
2. 网站 URL 未更新
- 原因:WordPress 把网站的 URL 信息存于数据库里,搬家之后网站的域名或者目录发生变化,若数据库中的 URL 信息未更新,就会造成文章链接失效。
- 解决办法:
- 使用插件:你可以安装并激活 “Better Search Replace” 插件,利用它把数据库里旧的 URL 替换成新的 URL。
- 手动修改数据库:通过 phpMyAdmin 登录数据库,找到
wp_options
表,把siteurl
和home
字段的值更新为新的网站 URL。
3. 固定链接设置问题
- 原因:固定链接设置会影响文章的 URL 结构,搬家之后固定链接设置可能没有正确迁移,从而引发 404 错误。
- 解决办法:登录 WordPress 后台,依次点击 “设置” – “固定链接”,随便选择一个其他的固定链接结构,然后保存,接着再重新选择你想要的固定链接结构,再次保存。这样做能刷新固定链接规则。
4. .htaccess
文件问题
- 原因:
.htaccess
文件对固定链接规则起着关键作用,搬家之后这个文件可能没有正确迁移或者内容有误。 - 解决办法:
- 检查新服务器上 WordPress 根目录下是否存在
.htaccess
文件,若不存在,可以手动创建。 - 确保
.htaccess
文件内容正确,典型的 WordPress.htaccess
文件内容如下:
- 检查新服务器上 WordPress 根目录下是否存在
# 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
5. 文件权限问题
- 原因:新服务器上 WordPress 文件和目录的权限设置可能不正确,这会导致 WordPress 无法正常读取文章文件。
- 解决办法:使用 FTP 客户端或者服务器的文件管理工具,把 WordPress 文件的权限设置为 644,目录权限设置为 755。