我在/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
有什么想法吗?谢谢
最合适的回答,由SO网友:Philip Seyfi 整理而成
我通过将文件上传和显示的方式升级到新的WordPress 3.5方法,解决了这个问题。
有关更详细的教程,请访问http://halfelf.org/2012/dumping-ms-files/ 但基本步骤如下:
从移动图像blogs.dir/#/files/
到/uploads/sites/#/
更改WordPress设置,使其不在/files/
但在/uploads/sites/#/
英寸。htaccess或您的nginx配置文件删除ms文件。php行/节搜索/替换每个站点的posts表,更改/files/
到/uploads/sites/#/