回答:
example.com/bob/files/picture.jpgは、WordPressマルチサイトインストールでの画像の推奨される正規URLです。URL blogs.dir
内の2つのURLは基本的に同一であり、どちらもファイルシステム構造を利用します。サブドメインインストールではなくサブディレクトリインストールを実行したため、「bob」を含むパスが存在します。他のパスは、example.com / fred / wp-content / blogs.dir / 5 / files / pictures.jpgなど、他のサイトに基づいて存在します。それ以外の場合、他のパスは存在しません。
このプロセスについて説明できることはたくさんあります。あなたが探している詳細のレベルが100%確実ではないので、ここで基本を説明します。
WordPressマルチサイトはファイルをblog_id
(「/blogs.dir/」の後の「5」)に保存して、物事を整理し、異なるサイトのファイルを分離します。このディレクトリ構造は、公開することを目的としていません。WordPressは書き換えルールを使用してにルーティング^files/(.+)
しwp-includes/ms-files.php?file=$1
、wp-includes/ms-files.php
画像や役立つヘッダーを処理して出力します。これにはいくつかの利点があります。
blog_id
5であると表示されています。deny from all
て.htaccess
、あなたがしたくない場合はそう、例えば、人々は元の画像サイズにアクセスすることはできません。主な欠点が1つあります。それは、画像/ファイルがPHPを通過するため(さらに、いくつかのMySQLクエリを必要とする可能性があるため)、さらに多くのリソースが必要になることです。キャッシュプラグインがインストールされている場合、追加のリソースはごくわずかです。
フィルターに関しては、mu-plugins、プラグイン、テーマのいずれも読み込まれない* 1つの理由で、プロセス内の何かを簡単にフィルターすることはできません。あなたができる最善のことは、wp-config.phpの定数を上書きすることです。オーバーライドできる最も役立つ/関連する定数を次に示します。
if ( !defined( 'UPLOADBLOGSDIR' ) )
define( 'UPLOADBLOGSDIR', 'wp-content/blogs.dir' );
if ( !defined( 'UPLOADS' ) ) {
// Uploads dir relative to ABSPATH
define( 'UPLOADS', UPLOADBLOGSDIR . "/{$wpdb->blogid}/files/" );
if ( 'wp-content/blogs.dir' == UPLOADBLOGSDIR )
define( 'BLOGUPLOADDIR', WP_CONTENT_DIR . "/blogs.dir/{$wpdb->blogid}/files/" );
}
/**
* Optional support for X-Sendfile header
*/
if ( !defined( 'WPMU_SENDFILE' ) )
define( 'WPMU_SENDFILE', false );
/**
* Optional support for X-Accel-Redirect header
*/
if ( !defined( 'WPMU_ACCEL_REDIRECT' ) )
define( 'WPMU_ACCEL_REDIRECT', false );
*プラグインは読み込まれませんが、ドロップインは読み込まれます。したがって、標準のプラグインを使用することはできませんが、WordPressは(前述のように)機密ファイルにアクセス制御を追加するなど、必要なことをすべて実行するための基礎を築きます。ドロップインはsunrise.php
、そのようなコードを追加するのに適した場所です。