Multisite WordPress загруженные файлы nginx throw 404

У меня есть субдомен WordPress multisite install в подкаталоге /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

Есть идеи? Благодаря!

Solutions Collecting From Web of "Multisite WordPress загруженные файлы nginx throw 404"

Я решил проблему, обновив способ загрузки и отображения файлов в новый метод WordPress 3.5.

Более подробное руководство можно найти по адресу http://halfelf.org/2012/dumping-ms-files/, но основные шаги заключаются в следующем:

  • Перемещение изображений из blogs.dir/#/files/ to /uploads/sites/#/
  • Измените настройки WordPress, чтобы он не выглядел в /files/ in /uploads/sites/#/
  • В .htaccess или в файле конфигурации nginx удалите строку / раздел ms-files.php
  • Поиск / замена таблицы сообщений для каждого сайта, изменение /files/ to /uploads/sites/#/