wordpress更换主机后只有首页能打开?

在 WordPress 更换主机后,只有首页能打开,而其他页面(如文章页、分类页、后台等)出现 404 错误 或无法访问的情况,通常是由于以下原因造成的:


🔧 常见原因及解决方法

✅ 1. 固定链接(Permalink)设置问题

更换主机后,WordPress 的 .htaccess 文件可能没有正确生成或权限不对,导致伪静态规则失效。

解决方法:

  • 登录 WordPress 后台 → 设置 → 固定链接
  • 无需更改内容,直接点击“保存更改”
    • 这会强制 WordPress 重新生成 .htaccess 文件
  • 检查网站根目录是否有 .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

🛠️ 总结步骤(推荐顺序)

  1. 登录 WordPress 后台 → 设置 → 固定链接 → 点击“保存更改”
  2. 检查并更新数据库中的 siteurl 和 home 地址
  3. 检查 .htaccess 文件是否存在且内容正确
  4. 检查服务器是否启用了 mod_rewrite(Apache)
  5. 检查 Nginx 配置(如果是 Nginx)
  6. 清除浏览器和插件缓存
  7. 检查文件权限(尤其是上传目录和 wp-content)

如果你不确定自己使用的是哪种服务器环境(Apache/Nginx),或者不知道如何操作某些步骤,也可以告诉我你的具体情况(比如使用什么主机、控制面板、是否用过迁移插件等),我可以提供更针对性的帮助。