403 Forbiddenとは?意味・原因と解決方法|見る側・サイト運営側・開発側の確認手順

403エラー(403 Forbidden)は、「サーバーはリクエストを理解したが、実行を拒否した」という意味です。ページが無いわけでも、サーバーが落ちているわけでもありません。アクセスする権利がないと断られている状態です。

先に結論。403は「権限の問題」なので、リロードしても直りません。確認する場所は立場で変わります。

  • ページを見に来ただけの人 → ログイン状態・VPN・キャッシュを確認。だめなら運営者に連絡(手順へ)
  • 自分のサイトで403が出ている人 → パーミッション・.htaccess・WAFの順に確認(手順へ)
  • プログラムやAPIで403が返ってきた人 → 認証情報と権限(スコープ)を確認(手順へ)

403 Forbiddenとは?意味をひとことで

HTTPステータスコードの403はForbidden(禁止)です。リクエストはサーバーに正しく届いていて、サーバーも内容を理解しています。そのうえで「あなたには見せません」と返しています。

似たエラーと並べると、403の性質がはっきりします。

コード 意味 ひとことで リロードで直るか
403 Forbidden 禁止されている ある。でも見せない 直らない
401 Unauthorized 認証が必要 まだ名乗っていない ログインすれば通る
404 Not Found 見つからない そもそも無い 直らない
429 Too Many Requests リクエストが多すぎる 少し待って 時間を置けば直る
503 Service Unavailable 一時的に使えない 今は無理 時間を置けば直ることが多い
関連記事:401エラー/404エラー/429エラー/503エラー/HTTPステータスコード一覧

いちばん紛らわしいのは401との違いです。401は「まだ名乗っていない」、403は「名乗ったうえで断られた」です。ログインしても403が出るなら、そのアカウントに権限がありません。

画面のメッセージ別:403の原因の見分け方

403の画面は、どこが拒否したかによって見た目が違います。表示されている文言から、拒否した場所の見当がつきます。

表示されるメッセージ 拒否しているもの 主な原因
Forbidden
You don't have permission to access this resource.
Apache(レンタルサーバーに多い) パーミッション、.htaccess、インデックスファイルが無い
403 Forbidden の下に nginx nginx パーミッション、設定ファイルの deny、インデックスファイルが無い
Error 1020: Access denied
Sorry, you have been blocked
Cloudflare サイト側のファイアウォールルール、ボット判定
403 ERROR
The request could not be satisfied.
Amazon CloudFront 地域制限、WAF、配信元(S3など)の権限
AccessDenied(XML形式) Amazon S3 バケットポリシー、公開設定、署名付きURLの期限切れ
403. That's an error.
Your client does not have permission...
Googleのサービス アカウントの権限、共有設定、ネットワークの制限
レンタルサーバー独自の「アクセスが制限されています」画面 サーバー会社のWAF・国外IP制限 WAFの誤検知、海外からのアクセス制限
メッセージの細かい文言はバージョンや設定で変わります

Cloudflareのエラー番号(1020・1015など)ごとの対処はCloudflareにブロックされたときの解除方法にまとめています。

ページを見る側:403が出たときの対処法

あなたの環境が原因のことがあります。上から順に試してください。

  1. URLを確認する:ディレクトリ名だけのURL(末尾がスラッシュ)で403が出ることがあります。フォルダの中身の一覧表示を禁止している、サーバーの正常な設定です
  2. ログインし直す:会員限定ページなら、ログインし直すと通ることがあります
  3. VPN・プロキシを切る:海外からのアクセスや、特定のVPNの接続元を遮断しているサイトがあります
  4. キャッシュとCookieを消す:古いセッション情報が残っていると拒否されることがあります
  5. 別の回線で開く:Wi-Fiを切ってスマホのモバイル回線で開けたら、IPアドレス単位で弾かれています

それでも403なら、見る側では解決できません。サイトの運営者に「どのURLで」「いつ」403が出たかを伝えて問い合わせてください。

サイト運営側:403の原因と解決方法

自分のサイトで403が出ているなら、原因はほぼ次の5つです。上から順に確認すると早く見つかります。

1.ファイル・ディレクトリのパーミッション

最も多い原因です。Linuxサーバーでは、ファイルごとに「誰が読めるか」を決めるパーミッションがあり、Webサーバーが読めないと403になります。

対象 基本の値 403の原因になりやすい値
ディレクトリ 755 700(Webサーバーが中に入れない)/777(拒否するサーバーがある)
ファイル 644 600(Webサーバーから読めない)
CGI・実行ファイル 755 644(実行できない)
一般的なレンタルサーバーでの目安。サーバー会社の指定があればそちらを優先

FTPソフトやサーバーの管理画面で変更できます。SSHが使えるなら次のように確認・変更します。

# 権限を確認する
ls -l public_html/

# ディレクトリを755、ファイルを644にする
chmod 755 public_html/blog
chmod 644 public_html/blog/index.html

「777にすれば直る」は誤りです。誰でも書き換えられる危険な状態になるうえ、セキュリティのために777を拒否するサーバーもあります。

2..htaccess のアクセス制限

Apacheのサーバーでは、.htaccess に書いたアクセス制限が原因のことがよくあります。一時的にファイル名を変えて(例:.htaccess_bak)、403が消えるか確かめてください。消えたら、中身のどこかが原因です。

# すべて拒否している(Apache 2.4の書き方)
Require all denied

# 特定のIPだけ許可している(ここに自分のIPが無いと403)
Require ip 192.0.2.0/24

# 古い書き方(Apache 2.2)。同じく「すべて拒否」
Order deny,allow
Deny from all

WordPressでは、セキュリティ系プラグインが .htaccess に制限を書き込むことがあります。プラグインを入れた直後に403が出始めたら、まずそれを疑ってください。

3.WAF・セキュリティ機能の誤検知

レンタルサーバーやCDNのWAF(Web Application Firewall)が、正常なリクエストを攻撃と誤認して403を返すことがあります。記事の保存やフォーム送信のときだけ403になるなら、ほぼこれです。本文に含まれるコードや特定の文字列が、攻撃のパターンに似ていると判定されます。

管理画面でWAFのログを見て、遮断された記録があれば、そのルールだけを除外します。WAF全体を止めたままにするのは危険です。AWSでの具体的な手順はWAF 403エラーを解決!原因特定からAWSの除外設定までにまとめています。

4.IPアドレス・国外アクセスの制限

サーバー会社の「国外IPアクセス制限」や、ログイン失敗が続いたときの自動ブロックで、特定の人だけ403になることがあります。海外出張中に自分のサイトの管理画面へ入れない、というのが典型です。管理画面のアクセス制限の設定を確認してください。

5.インデックスファイルが無い

ディレクトリに index.html や index.php が無く、フォルダの中身の一覧表示も禁止されていると403になります。これはサーバーの正常な動きです。インデックスファイルを置くか、正しいファイル名のURLにしてください。

開発側:プログラムやAPIで403が返ってきたとき

APIやプログラムからのアクセスで403が出たら、まずレスポンスの本文を読んでください。多くのAPIは、なぜ拒否したかを本文に書いて返しています。Pythonの requests なら次のように確認できます。

import requests

r = requests.get("https://api.example.com/v1/items",
                 headers={"Authorization": "Bearer YOUR_TOKEN"})

print(r.status_code)   # 403
print(r.text)          # 拒否の理由が書かれていることが多い
print(r.headers)       # どのサーバー・CDNが返したかの手がかり

r.raise_for_status()   # 4xx・5xxなら例外にして処理を止める
状況 確認すること
APIを呼んで403 APIキー・トークンの有効期限/そのキーに必要な権限(スコープ)が付いているか/無料枠で使えない機能ではないか
クラウドのストレージで403 IAMの権限、バケットポリシー、公開設定、署名付きURLの有効期限
Webページの取得(スクレイピング)で403 サイトの利用規約とrobots.txt、公式APIの有無
git pushで403 認証情報(トークン)/そのリポジトリへの書き込み権限
ブラウザのJavaScriptから別ドメインのAPIで403 サーバー側の許可設定。403ではなくCORSエラーとして表示されることもある
2026年10月1日時点

スクレイピングで403が返ってきたら、回避の方法を探す前に立ち止まってください。403は、サイト側の「機械からのアクセスはお断り」という明確な意思表示です。利用規約とrobots.txtを確認し、公式のAPIやデータ提供が無いかを先に調べるのが筋です。アクセスが多すぎて断られた場合は、403ではなく429エラーが返るのが一般的です。取得の基本はPython WEBスクレイピング入門で解説しています。

git pushの403はGit pushとは?使い方・基本コマンド・エラー対処法、Pythonのエラー全般はPythonエラー一覧と対処法にまとめています。

403はSEOに影響するのか

意図しない403は問題です。Googlebotが403を受け取ると、そのページを読めません。403が続けば、検索結果から外れていきます。

意図した403は問題ありません。会員限定ページや管理画面など、見せたくないページを403にするのは正しい使い方です。

怖いのは、公開したいページがWAFの誤検知や国外IP制限で403になっているケースです。Googlebotの多くは米国から来るため、国外IP制限をかけるとGoogleにも見えなくなることがあります。Search Consoleの「ページ」レポートに403が出ていないか、定期的に確認してください。

よくある質問

403と404はどう違いますか?

403は「ある。でも見せない」、404は「無い」です。403はアクセス権の問題なので、URLを直しても解決しません。404については404エラーとは?原因と対処法をご覧ください。

リロードすれば直りますか?

直りません。403は一時的な混雑ではなく権限の問題です。時間を置けば直ることが多いのは503エラーや429エラーのほうです。

スマホでは見られるのに、パソコンだと403になります

回線(IPアドレス)が違うためです。パソコン側の回線やVPNが、サイト側で遮断されている可能性があります。会社のネットワークからだけ403になる場合も同じ理由です。

パーミッションを777にしてもいいですか?

やめてください。誰でも書き込める状態になり危険です。サーバーによっては777を拒否して403を返します。ディレクトリ755・ファイル644が基本です。

WordPressの記事を保存しようとすると403になります

サーバーのWAFが、記事の本文を攻撃と誤認している可能性が高いです。本文にプログラムのコードやファイルのパスを書いていると起きやすくなります。サーバーの管理画面でWAFのログを確認し、該当するルールを除外してください。

関連記事

HTTPのエラー全般はHTTPステータスコード一覧、似たエラーは401エラー・404エラー・429エラー・503エラー、WAFの誤検知はWAF 403エラーの解決にまとめています。

テックジムは月額22,000円の通い放題でプログラミング教室を運営しています。東京本校(永田町)では毎週土曜にゼロから始めるPython入門講座、そしてゼロから始めるClaude Code講座を無料で開いています。どちらも説明会ではなく実際に手を動かす講座です。

まとめ

403エラー(403 Forbidden)はアクセス権の拒否です。リロードでは直りません。

  • 見る側:URL・ログイン状態・VPN・キャッシュ・回線を確認。だめなら運営者に連絡
  • サイト運営側:パーミッション(755/644)→ .htaccess → WAF → IP制限 → インデックスファイルの順に確認
  • 開発側:レスポンスの本文を読む。APIキーの権限、IAM、認証情報を確認
  • SEO:意図しない403は検索結果から外れる原因になる。Search Consoleで定期的に確認

プログラミング学習に興味がある方は、まずは無料体験会へ

無料体験会・お申し込みはこちら