web-dev-qa-db-ja.com

マルチサイト/ネットワーク設定のメインブログのアップグレードパス/ URLの奇妙さ

WP 3.5以前に開始されたWPネットワーク(ドメインマッピングあり)があるため、メディアファイルの保存にms-files.phpおよびwp-content/blogs.dir/を使用していました。私はms-files.php依存関係を削除したいと思いました、そして何らかの研究をした後にプロセスを始めました:

私は最初に 移動 blogs.dir/#/filesからuploads/sites/#へのファイルの移動を試みませんでしたが、そのためのシンボリックリンクを設定しました。それから私はblogs.dir/#/filesからuploads/sites/#にすべてをコピーしたので、私はいくつかのパーミッション問題を抱えていました。

その後、各サイトのupload_pathupload_url_path、およびfileupload_urlの値を消去しました。

そして最後にms_files_rewriting = 0テーブルのwp_sitemetaを更新/挿入しました。

また、DB内のすべてのURLを更新する必要がないように、いくつかの書き換え規則を.htaccessファイルに追加しました。

私たちの設定のメインブログIDは2で、デフォルトの1ではありません:define('BLOG_ID_CURRENT_SITE', 2);

私の知る限り、そしてwp_upload_dir()に見られるものに基づいて、WPはメインのブログコンテンツのためにuploadsフォルダーのルートを使い、他のブログのためにuploads/sites/#を使います。だから私はblogs.dir/2/filesからuploadsフォルダのルートにコピーし、uploads/sites/2にはコピーしていません。

これがMAIN BLOGのメディアファイルの問題です。バックエンドでは、WPはuploadsフォルダからファイルをロードしますが、フロントエンドではuploads/sites/2からファイルをロードしようとします。存在せず、奇妙です!

シモンズ:私はこれを直すために別の書き換え規則を追加することができますが、/sites/2がメインのブログに追加された理由を本当に知りたいのです。

5
Parham

WordPressマルチサイトの「アップロードパス」はサーバー相対パス(例:/home/serveraccountname/public_html/wp-content/uploads)に設定されるべきです。

"Upload URL Path"はURI(例えばhttp://example.com/wp-content/uploads)であるべきです。

サブサイトの/sites/1/フラグメントを無視する - WordPressはこれらを自動的に追加します。

1
Ian

以前はファイルが保存されていたディレクトリを設定できるようになり、そのオプションは削除されたため、誤ったリンクと関係があるかもしれません。私は同じ問題を抱えていました、しかし私は調べて、正しく働いていなかったファイルを再アップロードしました。たくさんのファイルがある場合、これは現実的ではないかもしれませんが、それは1つの選択肢です。もう一つのオプションは Broken Link Checker Janis Elstsによる/のようなプラグインを使うことです。機能しないリンクをサイトで検索し、URLを簡単に変更することができます。それはまたあなたに電子メールを送り、リンクに接続されている他のサイトが機能しなくなったかどうかを教えてくれます。それは非常に便利で、私は今私のウェブサイトのほとんどでそれを使用しています。 ^^

0
a4jp.com