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

在 WordPress 更换主机后,只有首页能打开(比如访问内页或后台出现 404 错误),这通常是由于 固定链接设置服务器伪静态规则配置不正确 导致的。下面是详细的排查和解决方法:


✅ 常见原因及解决方案

🔧 1. 刷新固定链接设置

这是最常见的问题原因。

操作步骤:

  1. 登录 WordPress 后台(如果可以访问首页)。
  2. 进入 设置 > 固定链接
  3. 不需要修改任何内容,直接点击页面底部的 “保存更改” 按钮。
    • 这会刷新 .htaccess 文件或通知服务器更新重写规则。

⚠️ 如果无法进入后台,可以手动编辑 .htaccess 文件,参考第3点。


🔁 2. 检查 Permalink 设置 是否为默认以外的格式

如果你使用的是自定义结构(如 /年/月/日/文章名),必须配合正确的服务器规则。

建议临时改为 “默认” 格式测试:

  1. 后台进入 设置 > 固定链接
  2. 选择 “默认”(即 ?p=123 的形式)。
  3. 点击保存,然后尝试访问其他页面是否正常。

📄 3. 确保 .htaccess 文件存在且可读(Apache 服务器)

WordPress 使用 .htaccess 来实现伪静态链接。

操作步骤:

  • 在网站根目录(与 wp-config.php 同级)检查是否存在 .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

⚠️ 注意权限:.htaccess 文件需要有正确的读取权限(通常为 644)。


🌀 4. 检查服务器是否启用 mod_rewrite 模块(Apache)

如果你用的是 Apache 服务器,确保开启了 mod_rewrite 模块。

如何检查?

  • 联系主机商或查看 phpinfo() 页面中是否启用了 mod_rewrite
  • 如果是自己管理的 VPS,可以运行如下命令启用:
    sudo a2enmod rewrite
    sudo systemctl restart apache2

🧃 5. Nginx 用户需配置伪静态规则

如果你迁移到了 Nginx 服务器,请确认你已经添加了 WordPress 的伪静态规则。

示例 Nginx 配置:

location / {
    try_files $uri $uri/ /index.php?$args;
}

或者更完整的配置:

server {
    listen 80;
    server_name example.com;
    root /var/www/html;

    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php-fpm.sock;
    }

    location ~ /.ht {
        deny all;
    }
}

修改完 Nginx 配置后记得重启服务:

sudo systemctl restart nginx

🗂 6. 检查文件权限

有时候权限设置错误也会导致某些页面无法访问。

推荐设置:

  • 文件权限:644
  • 目录权限:755
  • wp-config.php:600(仅限所有者)

🧪 7. 禁用插件排除冲突

某些 SEO 插件(如 Yoast SEO、Rank Math)会影响固定链接行为。

操作方式:

  1. 通过 FTP 或文件管理器进入 wp-content/plugins/
  2. 将整个 plugins 文件夹重命名为 plugins.deactivate
  3. 再次访问页面,看是否恢复正常。

🔄 8. 重新同步数据库 URL(使用 Better Search Replace 插件)

迁移过程中可能出现旧域名未完全替换的问题。

推荐插件:

  • Better Search Replace
  • Velvet Blues Update URLs
  • Duplicator / All-in-One WP Migration(迁移专用)

✅ 总结处理顺序(推荐流程):

  1. 刷新固定链接设置(保存一次即可)
  2. 检查并配置 .htaccess 文件
  3. 检查服务器是否启用 mod_rewrite
  4. Nginx 用户添加伪静态规则
  5. 检查文件权限
  6. 禁用插件测试
  7. 替换数据库中的旧域名

如果你提供更多细节(例如你是用 Apache 还是 Nginx、能否登录后台等),我可以给出更具体的指导。

需要我帮你写一份适用于你的服务器的伪静态规则吗?

未经允许不得转载:云计算HECS » wordpress更换主机后只有首页能打开?