迁移 WordPress 后遇到页面均报 404 错误处理办法

迁移 WordPress 后遇到页面均报 404 错误处理办法

在使用 All-in-One WP Migration 插件迁移 WordPress 后遇到除主页外其他页面均报 404 错误,这是迁移后伪静态规则失效或配置未更新的典型问题。以下是系统化的排查与解决步骤,按优先级排序操作:


🔧 一、优先操作:重置固定链接(90% 问题在此解决)

  1. 进入 WordPress 后台设置固定链接

  2. 先将结构改为 “朴素”(即动态链接),点击 “保存更改”

  3. 再切换回你原来的自定义结构(如 /\%postname\%/),再次 保存更改
    → 此操作会重写 .htaccess 文件并刷新重定向规则124


📂 二、检查服务器配置(针对 Apache 或 Nginx)

Apache 服务器:

  1. 启用 mod_rewrite 模块
    在终端运行:

    bash

    sudo a2enmod rewrite && sudo systemctl restart apache2
  2. 检查目录权限
    打开 Apache 配置文件(如 /etc/apache2/sites-available/000-default.conf),确保对应站点的 <Directory> 区块包含:

    apache

    <Directory "/var/www/html/your-site">
        AllowOverride All  # 必须为 All
    </Directory>

    保存后重启 Apache:sudo systemctl restart apache2168

Nginx 服务器:

  1. 修改站点配置文件(如 /etc/nginx/sites-available/your-site
    server {} 区块内添加以下规则:

    nginx(我的是用这个方法解决成功,本篇文章的记录初始原因)

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
  2. 测试配置并重启:

    bash

    sudo nginx -t && sudo systemctl reload nginx

    17


⚙️ 三、验证 .htaccess 文件状态

  1. 检查文件是否存在
    WordPress 根目录(通常为 /var/www/html/)需存在 .htaccess 文件(隐藏文件)。

  2. 确认内容正确
    正常内容应为:

    apache

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

    → 若被篡改或缺失,从其他正常站点复制或手动创建19

  3. 检查文件权限
    运行命令:

    bash

    chmod 644 .htaccess  # 文件权限
    chmod 755 /path/to/wordpress  # 目录权限

🧩 四、排查插件/主题冲突

  1. 临时禁用所有插件
    通过 FTP 将 /wp-content/plugins/ 文件夹重命名为 plugins_backup

  2. 切换默认主题
    重命名当前主题文件夹(如 /wp-content/themes/your-theme 改为 your-theme_backup),触发 WordPress 回退至默认主题。

  3. 重新访问页面 → 若 404 消失,则逐个恢复插件/主题定位冲突源810


🛠️ 五、数据库修复(少部分情况需要)

  1. 手动更新 permalink_structure
    进入数据库(如 phpMyAdmin),打开表 wp_options(前缀可能不同),找到 permalink_structure 项,确保其值与迁移前一致(如 /%postname%/8

  2. 校对站点地址
    检查 wp_options 表中的 siteurlhome 字段,需为新域名。


有一些是插件原因,可以下载历史版本替换试试:https://downloads.wordpress.org/plugin/elementor.3.30.1.zip

💡 提示:若使用宝塔面板等管理工具,需在“网站设置”中手动开启“伪静态”并选择 WordPress 规则,避免手动编辑配置文件7

按以上步骤操作后,绝大多数迁移导致的 404 问题均可解决。如仍异常,可结合服务器错误日志(/var/log/apache2/error.log 或 Nginx 的 error.log)进一步分析。

LICENSED UNDER CC BY-NC-SA 4.0