多站点WordPress nginx上传的文件抛出404

时间:2013-09-29 作者:Philip Seyfi

我在/blog 在nginx服务器上运行的子目录。除了可以正确上传但无法通过url访问的文件外,其他一切正常。

有关文件的配置部分是:

location ~ ^/files/(.*)$ {
    try_files /blog/wp-content/blogs.dir/$blogid/$uri /blog/wp-includes/ms-files.php?file=$1 ;
    access_log off; log_not_found off; expires max;
}

#avoid php readfile()
location ^~ /blogs.dir {
    internal;
    alias /var/www/example/public_html/blog/wp-content/blogs.dir;
    access_log off; log_not_found off;      expires max;
}
以及

map $http_host $blogid {
    default       -999;

    #blog
    example.com             1;
    a.example.com           2;
    b.example.com           3;
    c.example.com           4;
}
WordPress网站具有以下设置:

上载路径:wp-content/blogs.dir/1/files/

上载Url路径:http://example.com/blog/files

文件上载Url:http://example.com/blog/files

上传路径中的数字对于每个站点来说当然是不同的。

当我尝试将文件上载到任何网站的任何博客帖子时,它确实会出现在/blog/wp-content/blogs.dir/#/files/ 但如果我尝试访问/blog/wp-content/files/test.png 它抛出404

有什么想法吗?谢谢

1 个回复
最合适的回答,由SO网友:Philip Seyfi 整理而成

我通过将文件上传和显示的方式升级到新的WordPress 3.5方法,解决了这个问题。

有关更详细的教程,请访问http://halfelf.org/2012/dumping-ms-files/ 但基本步骤如下:

从移动图像blogs.dir/#/files//uploads/sites/#//files/ 但在/uploads/sites/#/

  • 英寸。htaccess或您的nginx配置文件删除ms文件。php行/节搜索/替换每个站点的posts表,更改/files//uploads/sites/#/
  • 结束

    相关推荐

    Copy Root Multisite Site

    我在WordPress中创建了一个多站点安装,位于example.com 网站位于example.com/site1, example.com/site2 等是否可以创建example.com 在example.com/site3?Blog Copier 和NS cloner 由于某种原因,不允许您创建根站点的副本。这背后的技术限制是什么?