Neue WordPress-Uploads sind kaputt

Ich habe seit Version 3.8.1 ein Netzwerk von WordPress-Seiten (Multisite) betrieben. Ich habe Plugins und Core ständig aktualisiert. Irgendwann entdeckte ich, dass das Hochladen neuer Bilder zu defekten Ergebnissen führt.

Wenn ich eine Datei hochlade, geht sie zu wp-content/blogs.dir/7/files , wobei 7 die Blog-ID ist. WordPress denkt aus irgendeinem Grund, dass es mit https://siteurl.com/files/file-name.png und daher alle Bilder in der Medienbibliothek oder in neu hinzugefügten Inhalten beschädigt sind.

Ich kann mich nicht erinnern, irgendeine Konfiguration bearbeitet zu haben und zuvor sind alle Dateien in das Verzeichnis gegangen, zB wp-content/uploads/sites/7/files/2015/05/ . Ich vermutete, dass das Aktualisieren eines Plugins oder cores das Verhalten verursachte, aber wenn ich über ein VCS in den Verlauf gehe, kann ich das vorherige Upload-Verhalten nicht wiederherstellen, so dass das Problem durch Dateiberechtigungen, .htaccess oder ähnliches verursacht wird. Ich habe versucht, mit denen zu spielen, aber ohne Erfolg.

Wenn ich mir den Quellcode anschaue, kann ich nicht herausfinden, wie es vorher funktioniert hat. Es gibt eine Zeile, die den Upload-Pfad zu blogs.dir hier definiert https://github.com/WordPress/WordPress/blob/master/wp-includes/ms-default-constants.php#L31

Ich habe versucht, diese drei Werte zu überschreiben

 define( 'UPLOADBLOGSDIR', 'wp-content/blogs.dir' ); define( 'UPLOADS', UPLOADBLOGSDIR . "/{$wpdb->blogid}/files/" ); define( 'BLOGUPLOADDIR', WP_CONTENT_DIR . "/blogs.dir/{$wpdb->blogid}/files/" ); 

mit

 define( 'UPLOADBLOGSDIR', WP_CONTENT_DIR . '/uploads' ); define( 'UPLOADS', UPLOADBLOGSDIR . "sites/{$wpdb->blogid}/" ); define( 'BLOGUPLOADDIR', WP_CONTENT_DIR . "/uploads/{$wpdb->blogid}/" ); 

aber ich kann die $ wpdb-> blogid nicht in der wp-config.php finden, so dass es nicht funktioniert. Und trotzdem kann ich nicht herausfinden, wie es vorher funktioniert hat.

Irgendwelche Gedanken?

PS: Ich habe gerade herausgefunden, dass Uploads für den Top-Level-Blog funktionieren.

P.S2 Versucht, eine Datei im Top-Level-Blog hochzuladen. Es zeigt den Link zu /wp-content/uploads/2015/05/Screen-Shot-2015-05-29-at-09.56.02.png im Medienbrowser. Wenn ich jetzt /wp-includes/ms-files.php?file=2015/05/Screen-Shot-2015-05-29-at-09.56.02.png öffne, /wp-includes/ms-files.php?file=2015/05/Screen-Shot-2015-05-29-at-09.56.02.png ich einen 404 und wenn ich den Dateipfad /wp-includes/ms-files.php?file=2015/05/Screen-Shot-2015-05-29-at-09.56.02.png ms-files.php versucht zu integrieren, bekomme ich /wp-content/blogs.dir/1/files/2015/05/Screen-Shot-2015-05-29-at-09.56.02.png

Solutions Collecting From Web of "Neue WordPress-Uploads sind kaputt"

Diese Zeile fehlt in meiner .htaccess-Datei und ich habe sie von einer Sicherung wiederhergestellt. Ich weiß nicht, ob WP es während eines Upgrades oder eines anderen Plugins entfernt hat, aber das Ersetzen hat das Problem behoben:

 #uploaded files RewriteRule ^files/(..+) wp-includes/ms-files.php?file=$1 [L] 

Kunstschmied

Nach einer quälenden Suche fand ich heraus, dass die Option ms_files_rewriting irgendwie ms_files_rewriting war. Ich habe es seit der Installation ausgeschaltet, aber während der Aktualisierung wurde etwas auf 1 in db gesetzt. Setzen Sie es auf 0 zurück, um das Problem zu beheben.