WordPress にアップロードしたファイルは基本公開なのでURLが分かればアクセスできますが、サイト全体は公開なものの一部非公開記事がある等の事情で公開したくない場合の対応策を調べてみました。
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https://WWW.EXAMPLE.JP/.*$
RewriteRule \.*$ - [F]
上述の .htaccess
ファイルを wp-content/uploads/
直下に配置することである程度の対策になりそうです。
ただし、以下のようないくつか弱点もあります。
- 同じドメインからのアクセスは許可されるので、完全な非公開ではない
- メディアを新しいタブで開く、と設定すると別ドメインからのアクセスと同じように拒否される
- Edge ではPDFなどがダウンロードできない
参考
WordPress REST API
WordPress REST API ではファイルの URL が取得可能なため、そこで URL が分かってしまうことも……。
「Disable WP REST API」等のプラグインで無効化することも視野でしょうか。