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
相关产品推荐
相关产品推荐

