WPでアップロードしたファイルを404にする(→ログインしたら見れるようになる)

投稿者: | 2025年3月7日

会員ページっぽいサイトのリクエストがあり仕様確認。
パスワードで制限を掛けてほしいというリクエストはプラグインを使えば可能だが、閲覧制限をかけてもアップロードしたファイル(pdfとかjpgとか)は見えてしまう(/wp-content/uploads/)のは困るって事で、色々調べてみた。

結果、/wp-content/uploads/に以下のhtaccessをアップロードすると、WPの管理画面のログインと連携して制限を掛けれた。



    # ユーザーがログインしていない場合、アクセスを拒否
    RewriteEngine On
    RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$ [NC]
    RewriteRule ^.*$ - [F,L]


これで制御できるので、一般の人はアップロードしたファイルは閲覧できない。
閲覧者は購読者ロールのアカウントでIDを作り、WP管理画面からログインさせたら閲覧できるようになる仕組み。

これにfunction.phpで「サイトにアクセスしたら必ずログイン画面に遷移する」「購読者ロールのIDのアカウントはログインしたらトップページに遷移する」事で何となくの会員専用ページの処理ができるはず。