You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress多站点迁移至Ubuntu22 Nginx环境后404问题求助

WordPress多站点迁移后Nginx下404问题排查方案

一、核对WordPress多站点核心配置

  • 打开wp-config.php,确认以下参数与当前域名、多站点模式匹配:
    define('WP_ALLOW_MULTISITE', true);
    define('MULTISITE', true);
    define('SUBDOMAIN_INSTALL', false); // 子目录模式设为false,子域名模式设为true
    define('DOMAIN_CURRENT_SITE', 'example.com');
    define('PATH_CURRENT_SITE', '/');
    define('SITE_ID_CURRENT_SITE', 1);
    define('BLOG_ID_CURRENT_SITE', 1);
    
  • 确保WP_SITEURL和WP_HOME(如果手动设置)指向当前站点的正确URL。

二、调整Nginx配置适配多站点

  • 子目录多站点:修改PHP处理块,确保正确传递请求参数,替换原location ~ \.php$内容:
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    }
    
  • 子域名多站点:将server_name改为泛域名格式:server_name example.com *.example.com;,同时确认泛域名DNS解析生效。

三、修复文件目录权限

  • 执行以下命令确保Nginx运行用户(www-data)拥有站点目录的读写权限:
    chown -R www-data:www-data /var/www/html/dev-kbd
    chmod -R 755 /var/www/html/dev-kbd
    find /var/www/html/dev-kbd -type f -exec chmod 644 {} \;
    

四、更新数据库中的站点信息

  • 登录MySQL,执行以下SQL语句更新域名相关字段(根据实际表前缀调整):
    -- 更新主站点URL
    UPDATE wp_options SET option_value = 'https://example.com' WHERE option_name IN ('siteurl', 'home');
    -- 更新多站点核心表
    UPDATE wp_blogs SET domain = 'example.com' WHERE blog_id = 1;
    UPDATE wp_site SET domain = 'example.com';
    

五、重载Nginx并测试

  • 重载Nginx使配置生效:
    sudo systemctl reload nginx
    
  • 清理浏览器缓存或使用无痕模式访问站点,确认404问题是否解决。

内容的提问来源于stack exchange,提问作者ahmadbagwi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 07:37:35