在 WordPress 更换主机后,只有首页能打开,而其他页面(如文章页、分类页、后台等)出现 404 错误 或无法访问的情况,通常是由于以下原因造成的:
🔧 常见原因及解决方法
✅ 1. 固定链接(Permalink)设置问题
更换主机后,WordPress 的 .htaccess 文件可能没有正确生成或权限不对,导致伪静态规则失效。
解决方法:
- 登录 WordPress 后台 → 设置 → 固定链接
- 无需更改内容,直接点击“保存更改”
- 这会强制 WordPress 重新生成
.htaccess文件
- 这会强制 WordPress 重新生成
- 检查网站根目录是否有
.htaccess文件,若没有则手动创建一个
示例 .htaccess 内容(适用于 Apache 主机):
# 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
✅ 2. 服务器重写模块未开启(mod_rewrite)
Apache 的 mod_rewrite 模块未启用,也会导致固定链接失效。
解决方法:
- 如果你使用的是 Apache 服务器,请确认
mod_rewrite是否已启用 - 编辑 Apache 配置文件(如
httpd.conf或站点配置),确保有类似如下配置:
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
然后重启 Apache:
sudo systemctl restart apache2
✅ 3. 数据库中的网站地址错误(siteurl 和 home)
如果更换主机时没有正确更新数据库中的网站地址,可能会导致跳转错误或部分页面加载异常。
解决方法:
登录 phpMyAdmin 或使用数据库管理工具,执行以下 SQL 查询(替换为你自己的域名):
UPDATE wp_options SET option_value = 'https://你的域名.com' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://你的域名.com' WHERE option_name = 'home';
注意:如果你的表前缀不是
wp_,请替换成正确的前缀(如wp_,xyz_等)
✅ 4. 缓存插件或浏览器缓存问题
有时候浏览器缓存或 WordPress 缓存插件(如 W3 Total Cache、WP Super Cache)会导致页面显示异常。
解决方法:
- 清除浏览器缓存
- 登录 WordPress 后台清除缓存插件的缓存数据
- 必要时可以临时禁用缓存插件测试是否恢复正常
✅ 5. Nginx 配置问题(如果你使用 Nginx)
Nginx 不像 Apache 自动读取 .htaccess 文件,你需要手动配置伪静态规则。
示例 Nginx 配置:
location / {
try_files $uri $uri/ /index.php?$args;
}
确保这个配置存在于你的站点配置中,并重启 Nginx:
sudo systemctl restart nginx
🛠️ 总结步骤(推荐顺序)
- 登录 WordPress 后台 → 设置 → 固定链接 → 点击“保存更改”
- 检查并更新数据库中的 siteurl 和 home 地址
- 检查
.htaccess文件是否存在且内容正确 - 检查服务器是否启用了 mod_rewrite(Apache)
- 检查 Nginx 配置(如果是 Nginx)
- 清除浏览器和插件缓存
- 检查文件权限(尤其是上传目录和 wp-content)
如果你不确定自己使用的是哪种服务器环境(Apache/Nginx),或者不知道如何操作某些步骤,也可以告诉我你的具体情况(比如使用什么主机、控制面板、是否用过迁移插件等),我可以提供更针对性的帮助。
云知识