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

WordPress多站点迁移新VPS后子站点图片无法访问求助

解决WordPress多站点迁移后子站点图片403无法显示的问题

嘿,我之前处理过好几个类似的WordPress多站点迁移后图片失效的案例,咱们一步步来排查解决:

1. 先修正数据库里的旧IP/域名指向

你提到图片URL还指向旧服务器,这说明WordPress数据库里的站点地址、附件地址还没更新成新IP。这是迁移多站点最容易忽略的点:

  • 如果用WP-CLI(推荐,效率高),直接在站点根目录跑这条命令,记得替换旧IP:
    wp search-replace '旧服务器IP地址' '217.70.34.131' --network-wide
    
    --network-wide参数很关键,它会遍历整个多站点的所有数据库表进行替换。
  • 如果没有WP-CLI,就用phpMyAdmin:打开数据库,选择所有表,用“搜索替换”功能,把旧IP替换成新IP217.70.34.131。

2. 排查/wp-includes/ms-files.php的权限与服务器配置

错误提示明确是禁止访问这个文件,这是WordPress多站点用来转发媒体文件请求的核心文件,得重点检查:

  • 文件权限:确保ms-files.php的权限是644,它所在的/wp-includes目录权限是755。可以用命令调整:
    chmod 644 /path/to/your/wp-includes/ms-files.php
    chmod 755 /path/to/your/wp-includes
    
  • 服务器重写规则:
    • 如果你用Apache,检查根目录的.htaccess文件,必须包含多站点的标准重写规则(如果迁移时没同步这个文件,大概率会出问题):
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ - [L]
      
      # 给/wp-admin添加尾部斜杠
      RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
      
      RewriteCond %{REQUEST_FILENAME} -f [OR]
      RewriteCond %{REQUEST_FILENAME} -d
      RewriteRule ^ - [L]
      RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
      RewriteRule ^(.*\.php)$ $1 [L]
      RewriteRule . index.php [L]
      
    • 如果你用Nginx,要在站点配置里添加针对ms-files.php的规则,确保它能被正确解析:
      location / {
          try_files $uri $uri/ /index.php?$args;
      }
      
      location ~* ^/wp-includes/ms-files.php$ {
          fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 替换成你服务器的PHP-FPM路径
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
          allow all; # 确保允许访问这个文件
      }
      

3. 验证媒体文件的权限与归属

虽然你说磁盘里有图片,但Web服务器可能没有读取权限:

  • 把wp-content/uploads目录的归属改成Web服务器用户(比如Apache的apache,Nginx的www-data):
    chown -R www-data:www-data /path/to/your/wp-content/uploads
    
  • 目录权限设为755,文件权限设为644:
    find /path/to/your/wp-content/uploads -type d -exec chmod 755 {} \;
    find /path/to/your/wp-content/uploads -type f -exec chmod 644 {} \;
    

4. 检查多站点后台的站点配置

最后,登录WordPress网络管理后台,进入「站点」-> 编辑每个子站点:

  • 确认「站点地址(URL)」和「首页地址(URL)」都已经改成新IP或域名,而不是旧服务器的地址。
  • 清空所有缓存(包括插件缓存、服务器缓存),避免旧URL被缓存导致问题。

按这个顺序排查下来,基本能解决你遇到的图片403和URL指向错误的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:30:18