3.4までのマルチサイトの場合は、実際に画像がUPされたディレクトリと、出力されるパスは異なっており、mod_rewriteにより正しい画像が表示される仕組みとなっています。
.htaccessに設定が記述されているはずなのですが、それが間違っている可能性があります。
Codexにhtaccessの記述例が載っています。これとお手元のサイトのhtaccessを比べてみてください。
↓
http://wpdocs.sourceforge.jp/Create_A_Network#.htaccess_.E3.81.A8_Mod_Rewrite
ありがとうございます。
ご教授いただいたとおり.htaccessの記述を確認し、念のため入れ替えてみましたが解決しませんでした。
質問させていただく際に大切な事を書くのを忘れていました。
というのは、これまで何件かのマルチサイトを作成してきましたがこういうトラブルはありませんでした。
しかし今回のサイトは、WordPressの設置から1ヶ月以上経過してしまったため、通常のサブディレクトリ型インストールを選べませんでした。
そこで、http://egoblock.com/blog/6778 を一部参考にして wp-config.php を変更するなどしてサブディレクトリ型に強制的に変更したことが原因のようです。
このようなイレギュラーな状況からだと修正はきっと難しいのでしょうね。
※ 12月5日公開予定のWordPress3.5では「メディア」の仕様が変更されるようですが、今回のような問題は関係ありませんか?
※ 12月5日公開予定のWordPress3.5では「メディア」の仕様が変更されるようですが、今回のような問題は関係ありませんか?
3.5ではblogs.dirディレクトリ自体が廃止になったり、マルチサイトのrewriteについても変更が加えられています。
kusatsuさんのようなケースでどのような挙動になるかは、ちょっとなんとも言えない感じです…m(_ _)m
※だれか助太刀いただけると幸い!
はじめまして。
ご参考になるかはわかりませんが、私も以前、すでに運用中のWPサイト(バージョンは3.3.2)をマルチサイト化したときに、似たような現象にぶつかりました。
利用中のサーバは、さくらレンタルサーバのスタンダードプランで、kusatsuさんのおっしゃっるように、すでにサブディレクトリ型は選べなかったため、強制的にサブディレクトリ型へ変更したのですが、そうすると、ダッシュボードの、参加サイト>子サイトへのダッシュボードへアクセスができませんでした。
http://ja.forums.wordpress.org/topic/5308?replies=8
そこで、やむなく、マルチサイト化を一度無効(リセット)にして、今度はサブドメイン型へ変更したところ、子サイトで、画像をアップロードすると、kusatsuさんのご質問のような現象になりました。
そのときは、.htaccess内の記述を
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
# uploaded files
RewriteRule ^(.*/)?files/(.*) wp-includes/ms-files.php?file=$2 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule . index.php [L]
上記に書き換えることで、画像が表示されるようになりました。
※具体的には、下記の一行を書き換えています。
RewriteRule ^(.*/)?files/(.*) wp-includes/ms-files.php?file=$2 [L]
参考にさせていただいたのは、こちらの記事です。
http://www.e-jaban.com/machizo/0000040_troubleshooting/wordpress30rewriterule_files_wp-includesms-filesphpfile1_l.html
サブディレクトリ型とサブドメイン型では、.htaccessの記述が違いますので、ご参考にならないかもしれませんが、少しでもお役に立てればと思い、投稿いたしました。
mypacecreator さん、lilacmimosaさん、ありがとうございます。
お教えいただいた参考サイトには次のような記述があったので、フォルダ方式も試してみたしたがエラーになりました。
(引用)
サブドメイン方式の場合は
RewriteRule ^(.*/)?files/(.*) wp-includes/ms-files.php?file=$2 [L]
フォルダ方式の場合は
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
今回、色々とアドバイスいただき感謝いたします。
現状では、ダッシュボードのサイト一覧に子サイト名が表示されない(サイトネットワーク管理者メニューの「サイト」からは選択できる)といった問題も発生していて気になりますので仕切り直しすることにします。
まだ、サイトの情報が少ないのでもう一度初めからワードプレスを設置し直して、必ず「30日以内」にマルチサイト化の作業をします。
WordPress3.5では、「blogs.dirディレクトリ自体が廃止になったり、マルチサイトのrewriteについても変更が加えられています。」とのことですので、時期バージョンを楽しみにしています。
ありがとうございました。
色々勉強になりました。
調べてみると、次のフォーラム記事にも関連記事が書かれていました。
http://ja.forums.wordpress.org/topic/4391?replies=11
(引用)
次の場合にはサブディレクトリ型インストールを選べません。
WordPressを設置してから1ヶ月以上経っている場合。既存のパーマリンク構造に問題が生じるため。(この問題は今後のバージョンで修正される見込みです。See Switching between subdomains and subfolders for more information.)
今後のバージョンで是非この問題を解消していただければと思います。
それまでの間は、将来マルチサイト化する可能性が少しでもある方は、1ヶ月以内に設定されることを強くお勧めします。