Medifence の基本的な使い方です。すべての操作は管理画面「メディア」→「アクセス制限」(manage_options 権限)で完結します。
1. 有効化する
プラグインを有効化すると、uploads ディレクトリの .htaccess に保護ルールが自動で書き込まれ、その時点から保護が始まります。書き込みには WordPress 標準のマーカー方式(insert_with_markers())を使うため、他のプラグインが書いたルールはそのまま保持されます。URL・ファイルの配置は変わらず、ログイン済みの訪問者には何の変化も見えません。
2. 保護ステータスを確認する
設定画面上部の「保護ステータス」に、ルールの有無・ルールの整合性・書き込み権限・mod_rewrite・ライブテストの 5 項目が表示されます。ライブテストは一時ファイルを作成し、Cookie なしの HTTP リクエストを自サイトへ送って、匿名アクセスが実際にブロックされるか(実際に返るステータスコード)を検証します。「テストを再実行」でいつでも再確認できます。
保護状態は「ツール」→「サイトヘルス」にも表示されます。保護されていない場合は「致命的な問題」として報告されるため、設定画面を開かなくても気づけます。
3. 保護の範囲を決める
既定ではアップロードディレクトリ全体が保護されます。用途に応じて 2 つのモードから選べます。
- 除外パス以外をすべて保護する(既定) — 全体を保護したうえで、公開したいフォルダだけを「除外するパス」に書きます。ロゴやチラシなど、一部だけ公開したい場合に使います。
- 指定したパスのみを保護する — 「保護するパス」に書いたフォルダだけを保護し、他は通常どおり配信します。会員向け資料など、限られた範囲だけを守りたい場合に使います。
パスはアップロードディレクトリからの相対パス(例: public、2026/private)を 1 行に 1 つ書きます。指定したパス自身とその配下が対象です。除外したフォルダのファイルは PHP を経由せず直接配信されるため、表示速度に影響しません。
拡張子単位の除外もできます(例: css, js, woff2)。テーマや他のプラグインが、ログインしていない訪問者向けにアップロードディレクトリからファイルを読み込む場合に使います。
4. その他の設定
- 必要な権限(capability) — 空欄ならログイン済みユーザー全員に許可。権限名(例:
read)を入れると、ログインに加えてその権限を要求します。 - 拒否時のステータスコード — 403 / 404 / 401 から選択。404 を選ぶとファイルの存在自体を隠せます。
- 自動修復(既定で有効) — 1 日 1 回ルールを点検し、失われていたり古かったりする場合は自動で書き直します。他のプラグインが
.htaccessを書き換えても、管理者が気づく前に保護が戻ります。最後に自動修復した日時は設定画面に表示されます。 - 代替画像の添付ファイル ID — 指定すると、拒否された画像リクエストには元画像の代わりにこの画像を返します(元画像が配信されることはありません)。
保存すると .htaccess も同時に書き直され、ライブテストが再実行されます。
5. 特定のファイルだけ共有する
アカウントを持たない相手に 1 ファイルだけ渡したいときは、共有リンクを作成します。メディアライブラリの一覧で対象ファイルの「共有リンク」をクリックするか、設定画面の「共有リンク」で添付ファイル ID と有効期間(1 時間 / 1 日 / 7 日 / 30 日)を指定して作成してください。
作成されたリンクは、そのファイルの通常の URL に署名と有効期限を付けたものです。署名にはファイルのパスと期限の両方が含まれるため、他のファイルには使い回せず、期限を書き換えることもできません。作成されたリンクは 1 回だけ表示されますので、その場でコピーしてください。発行済みのリンクをすべて無効にしたい場合は「すべての共有リンクを失効」を実行します。
6. 自分でも確認する
プライベートブラウジングのウィンドウでメディアファイルの URL を直接開き、ブロックされることを確認してください。Medifence がブロックした応答には診断用の X-Medifence ヘッダーが付くため、ブラウザーの開発者ツールでも判別できます。
WP-CLI が使える環境なら wp medifence status でも確認できます。保護されていない場合は終了コードが 0 以外になるため、デプロイ後の自動チェックにも使えます。