既存のサイトをサブドメインのあるマルチサイトに変換しました。整理するためのいくつかの問題がありましたが、1つの例外を除いて、現在はうまく機能しています。
メインサイトの画像は問題なくアップロードされていますが、サブドメインの画像はアップロードされていません。たとえば、次の場所に配置する必要がある画像は、
/public_html/wp-content/uploads/sites/6/2016/08
...で終わっています:
/public_html/wp-content/uploads/sites/6/sites/6/2016/08
エラーは下の #uploaded files 行にあると思いますが、それが何をしているのかわかりません。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?siteN/files/(.+) wp-content/blogs.dir/N/files/$2 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# Redirect to www
RewriteCond %{HTTP_Host} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [R=301,L]
</IfModule>
# END WordPress
FTPを使用してファイルを正しい場所に移動すると、画像はメディアライブラリに表示されるとおりに表示されます。
Site_optionsテーブルのms_files_rewritingオプションの値を確認してください。
Ms_files_rewritingが無効になっている場合、WordPressは自動的に/ sites/numberをサブサイトのそのアップロードパス値に追加します。
WordPress 3.5以降に作成されたマルチサイトネットワークでは、この設定をデフォルトで無効にする必要があります。古いネットワークでのみ有効にする必要があります。
その設定が正しく無効になっている場合は、単にアップロードパスから余分な/ sites/6を削除してください。 WordPressがあなたに代わってそれを追加します。
基本的に、WordPress 3.5では、マルチサイトへのアップロードの保存方法と、それらのアップロードパスオプションの機能が変更されました。この設定は、2つの異なる構成を区別するために存在します。 /blogs.dir/は古いやり方です。新しい方法は、単にそれらを/ wp-content/uploads/sites/numberに入れて、それらのURLに直接リンクすることです。ファイルのRewriteRulesはもう必要ありません。