2026年5月20日
2026年5月20日
ホットリンク防止設定が原因の403エラーの解決方法
はじめに
WordPressのサイト自体は表示されるのに、画像だけが表示されない・外部からの画像参照が403になる——こういった場合、ホットリンク防止設定が原因であることがよくあります。また、ホットリンク防止の設定ミスによってサイト全体が403になるケースもあります。
症状・原因
ホットリンク防止による403エラーの特徴:
- サイト全体は正常だが画像(img要素)だけが表示されない
- 管理画面の画像も含めてすべて403になる
- 別サイトに埋め込んだ画像が表示されない(これは正常動作の場合もある)
- エックスサーバーやロリポップなどの管理画面でホットリンク防止を有効にした後に問題が発生した
ホットリンク防止とは:
他のサイトが自分のサーバーの画像を直接参照(ホットリンク)することを防ぐ機能です。Referer(参照元)ヘッダーを見て、許可されていないドメインからのリクエストを拒否します。
解決手順
ステップ1:.htaccessを確認する
.htaccessに以下のような設定がないか確認します:
# ホットリンク防止の典型的な設定
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F,L]
この設定で問題になるのは:
example.comの部分が正しいドメインでない- 自分自身のドメインが許可リストにない
- WordPress管理画面のドメインが別になっている(マルチサイトなど)
ステップ2:許可するドメインを正しく設定する
自分のサイトドメインを許可リストに追加します:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com [NC]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.jp [NC]
RewriteRule \.(jpg|jpeg|png|gif|svg|webp|ico)$ - [F,L]
重要: 自分のドメインが複数ある場合(wwwあり・なし、httpとhttpsなど)は全て許可リストに追加してください。
ステップ3:レンタルサーバーのホットリンク防止設定を確認
エックスサーバーの場合:
1. 「サーバーパネル」にログイン
2. 「ホームページ」→「アクセス制限」→「ホットリンク防止」
3. 設定を確認・変更
ロリポップの場合:
1. ユーザー管理画面にログイン
2. 「サーバーの管理・設定」→「独自ドメイン設定」
3. 対象ドメインの「詳細設定」でホットリンク防止を確認
ConoHaの場合:
1. 「サイト管理」→「サイトセキュリティ」
2. 「ホットリンク防止」の設定を確認
ステップ4:一時的にホットリンク防止を無効化して確認
.htaccessのホットリンク防止設定をコメントアウト(#を先頭につける)して403が解消されるか確認します:
# RewriteEngine on
# RewriteCond %{HTTP_REFERER} !^$
# RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com [NC]
# RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F,L]
403が解消されたらホットリンク防止の設定が原因確定です。
ステップ5:WordPressのアップロードパスを除外する
管理画面内の画像(wp-admin内のアイコンなど)もブロックされている場合、除外条件を追加します:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com [NC]
RewriteCond %{REQUEST_URI} !^/wp-admin/ [NC]
RewriteCond %{REQUEST_URI} !^/wp-includes/ [NC]
RewriteRule \.(jpg|jpeg|png|gif|svg|webp|ico)$ - [F,L]
画像URLを直接アクセスした場合の403
ホットリンク防止設定ではRefererが空の場合(直接URLを入力した場合)は許可するのが一般的です。RewriteCond %{HTTP_REFERER} !^$がその役割です。この行がない場合、直接URLへのアクセスも403になります。
注意事項
- .htaccessを編集する前に必ずバックアップを取ってください
- ホットリンク防止を無効にすると帯域を他サイトに消費されるリスクがあります
- SVGファイルは
.svgを許可リストに追加することを忘れずに
まとめ
ホットリンク防止が原因の403エラーは、.htaccessのAllow fromルールに自分のドメインを追加するか、レンタルサーバーの管理画面で設定を見直すことで解決できます。WordPressの管理画面で使用するパス(/wp-admin/、/wp-includes/)を除外条件に追加することも重要です。
関連記事: