Multisite WordPress Nginx hochgeladene Dateien casting 404

Ich habe eine WordPress Subdomain Multisite Installation im Unterverzeichnis /blog das auf einem Nginx Server läuft. Alles funktioniert gut, außer Dateien, die korrekt hochgeladen werden, aber nicht über ihre URL zugänglich sind.

Der Teil der Konfiguration, der die Dateien betrifft, ist:

 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; } 

und

 map $http_host $blogid { default -999; #blog example.com 1; a.example.com 2; b.example.com 3; c.example.com 4; } 

Die WordPress-Seiten haben folgende Einstellungen:

Upload-Pfad: wp-content/blogs.dir/1/files/

URL-Pfad hochladen: http://example.com/blog/files

Datei Url laden: http://example.com/blog/files

Die Nummer im Upload-Pfad ist natürlich für jede Site unterschiedlich.

Wenn ich versuche, eine Datei auf einen beliebigen Blogpost einer der Websites hochzuladen, erscheint sie im Ordner /blog/wp-content/blogs.dir/#/files/ aber wenn ich versuche, auf /blog/wp-content/files/test.png es wirft 404

Irgendwelche Ideen? Vielen Dank!

Solutions Collecting From Web of "Multisite WordPress Nginx hochgeladene Dateien casting 404"

Ich habe das Problem getriggers, indem ich die Art, wie Dateien hochgeladen und angezeigt werden, auf die neue WordPress 3.5-Methode aktualisiert habe.

Ein detaillierteres Tutorial finden Sie unter http://halfelf.org/2012/dumping-ms-files/, aber die grundlegenden Schritte sind wie folgt:

  • Verschiebe Bilder von blogs.dir/#/files/ nach /uploads/sites/#/
  • Ändern Sie die WordPress-Einstellungen so, dass sie nicht in /files/ aber in /uploads/sites/#/ nachsehen
  • In .htaccess oder Ihrer Nginx-Konfigurationsdatei entfernen Sie ms-files.php line / section
  • Suchen / ersetzen Sie die Posts-Tabelle für jede Site, indem Sie /files/ to /uploads/sites/#/