403 Forbidden「You don't have permission」の意味・原因と解決方法

ポイント

「Forbidden You don't have permission to access this resource.」は「禁止:このリソースにアクセスする権限がありません」という意味で、Webサーバーがリクエストを理解したうえでアクセスを拒否したことを示す403エラーです(Apacheの標準メッセージ。nginxでは「403 Forbidden」の下に「nginx」と表示されます)。訪問者はURLの確認、Cookieの削除、VPNのオフ、モバイルデータなど別の回線での確認を試し、どこから開いても403ならサイトの運営者に連絡してください。サイト管理者はエラーログで原因を確認し、アクセス制御(Apache 2.4のRequire all granted)、ファイル権限(ディレクトリ755・ファイル644)、indexファイルの有無を点検しましょう。

今すぐ確認

403 forbiddenエラーの修正ガイド:アクセス拒否の原因とステップバイステップの解決方法を図解
403 forbiddenエラーの修正ガイド:アクセス拒否の原因とステップバイステップの解決方法を図解
読み始める
  1. 403 Forbiddenエラーとは?
  2. 403エラーの表示例
  3. 「Forbidden You don't have permission to access this resource.」の意味と原因
  4. 403 vs 401 vs 404:それぞれの違い
  5. 403 Forbiddenエラーの一般的な原因
  6. 訪問者としての403エラーの修正方法
  7. 1. URLを確認する
  8. 2. ブラウザのキャッシュとCookieをクリアする
  9. 3. VPNまたはプロキシを無効にする
  10. 4. 別のネットワークやデバイスを試す
  11. Xの動画で「video.twimg.com のサーバーがエラーを返しました: 403 Forbidden」と出る場合
  12. サイト管理者としての403エラーの修正方法
  13. 5. ファイルとディレクトリの権限を修正する
  14. 6. .htaccessルールを確認する
  15. 7. デフォルトのindexファイルを追加する
  16. 8. WordPressプラグインを無効にする
  17. 9. IPブロックとファイアウォールルールを確認する
  18. 10. HTTPSとクライアント証明書のルールを確認する
  19. 11. Cloudflareの403 / Error 1020を修正する
  20. 12. Nginxの403 Forbiddenを修正する
  21. 「403 Forbidden nginx」とは:error.logのメッセージ別の原因
  22. HTTPヘッダーを使った403エラーのデバッグ
  23. 403エラーはSEOに影響するか?
  24. 403エラーを防ぐ方法
  25. よくある質問

403 Forbiddenエラーとは?

403 Forbiddenエラーは、サーバーがリクエストを理解したうえで、その実行を拒否していることを意味します。ページは存在しますが、あなたには表示が許可されていません。404とは違い、サーバーはあなたが何を求めているかを正確に把握しています。メッセージの下に「nginx」や「Apache」と表示されていても、それはサイトが使っているサーバーソフトの名前にすぎません。拒否しているのはそのサイトの設定で、あなたのブラウザの問題ではありません。

HTTPの標準仕様RFC 9110 §15.5.4も、まさにこの言葉で定義しています。サーバーはリクエストを理解したが、その実行を拒否する("understood the request but refuses to fulfill it")。認証情報を送った場合、サーバーはそれを不十分と見なしており、クライアントは同じ認証情報で自動的にリクエストを繰り返すべきではありません("SHOULD NOT automatically repeat the request with the same credentials")。また、ページの存在そのものを隠すために、サーバーが403の代わりに404を返すこともあります。

簡単に言えば、ドアは存在しますが、あなたはそこを通ることを許可されていません。訪問者にできるのは自分の側に原因がないかを確かめることだけで、ルールそのものを変えられるのはサイトの管理者です。

403になるのは自分だけ?複数の地点から確認

403エラーの表示例

403ページの文言と、その下に表示されるサーバー名を見れば、どのソフトウェアがあなたを拒否したのか、つまり誰なら直せるのかがわかります。

ページの表示拒否したのは多くの場合の意味
403 Forbiddenの下にnginx(またはnginx/1.27.4、angie、openresty)サイトのnginxサーバー(AngieとOpenRestyはnginxベース)denyルール、あなたのIP・国・VPNのブロック、読み取れないファイル、またはindexファイルのないフォルダ
Forbiddenの見出しとYou don't have permission to access this resource.、その下にApache/2.4の行サイトのApacheサーバー多くは.htaccessにあるRequire all deniedやDeny fromのルール、またはファイル権限
403 - Forbidden: Access is denied.Microsoft IISフォルダの権限、または403.4(HTTPSが必要)のようなサブステータス
403 Forbiddenの下にLiteSpeed Web ServerLiteSpeed(共用レンタルサーバーで多い)ホスティング側のセキュリティルール、権限、または.htaccess
Sorry, you have been blockedとCloudflareのRay IDサイト管理者が設定したCloudflareのWAFルールリクエストがファイアウォールのルール(国、IPの評判、ボット対策)に一致した
Error 1020: Access deniedとRay IDCloudflareのその他のセキュリティ機能カスタムページのないブロックルール(Cloudflareのドキュメントは例としてAPIスキーマとJWTのチェックを挙げています)
Access Denied. You don't have permission to access … on this server. Reference #18…AkamaiのエッジファイアウォールあなたのIP、ネットワーク、VPN、またはリクエストのパターンが、サイトに届く前にブロックされた
403 ERROR. The request could not be satisfied.と「Generated by cloudfront」Amazon CloudFront / AWS WAFWAFのルール、または国による制限
Your access to this site has been limited by the site owner(サイトの管理者があなたのアクセスを制限した)Wordfence(WordPressのセキュリティプラグイン)プラグインがあなたのIPやリクエストをブロックした。解除できるのはサイトの管理者だけ

文言が何であれ、意味は同じです。このサーバーは、このページをあなたに渡しません。ブラウザの拡張機能やCookieだけでサーバーが拒否することは少なく、理由になりやすいのはあなたのIPアドレス、ネットワーク、VPNです。

「Forbidden You don't have permission to access this resource.」の意味と原因

「Forbidden You don't have permission to access this resource.」を日本語にすると「禁止:このリソースにアクセスする権限がありません」です。上の表のとおり、WebサーバーソフトApache HTTP Serverが403を返すときの標準メッセージです。

古いApacheでは「You don't have permission to access /(パス) on this server.」と表示されます。2019年のApache 2.4.41で、エラーページにURLを含めない形に変わったためで(Apacheの変更履歴、CVE-2019-10092)、意味は同じです。ページ下部の「Apache/2.4.xx (Ubuntu) Server at example.com Port 443」のような行は、ServerSignature設定で表示されるサーバー名です。「Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.」が続く場合は、エラー表示用のページ(ErrorDocument)を読み込もうとした際にも403になったという意味なので、ページ単位ではなくディレクトリ単位の設定から確認してください。

サイト管理者の場合、原因はApacheのエラーログ(Debian/Ubuntuは/var/log/apache2/error.log、RHEL系は/var/log/httpd/error_log)に記録されています。403が出た時刻の行を探し、次の表で原因を特定してください。

エラーログのメッセージ原因解決方法
AH01630: client denied by server configurationRequire all deniedやRequire ipなど、httpd.confや.htaccessのアクセス制御で拒否された公開するディレクトリの<Directory>にRequire all grantedを設定する
AH01797: client denied by server configurationApache 2.2形式のOrder・Deny from(mod_access_compat)で拒否された2.4形式のRequireに書き換え、新旧の書き方を混在させない
AH01276: Cannot serve directory …: No matching DirectoryIndex … foundディレクトリにindexファイルがなく、Options -Indexesでファイル一覧の表示も禁止されているindex.htmlなどを置くか、DirectoryIndexのファイル名を確認する
AH00035: access to … denied … because search permissions are missing on a component of the pathパスの途中のディレクトリに実行(x)権限がないnamei -lで各階層を確認し、ディレクトリを755にする
AH00037: Symbolic link not allowed or link target not accessibleシンボリックリンクが許可されていない、またはリンク先を読めないOptions FollowSymLinksを有効にするか、リンク先の権限を直す
ModSecurity: Access denied with code 403WAF(ModSecurity)のルールにリクエストが一致したログのルールIDを確認し、誤検知ならWAFの設定や除外ルールで調整する
apache
# Apache 2.4: 公開ディレクトリへのアクセスを許可する例
<Directory "/var/www/html">
    Options -Indexes +FollowSymLinks
    Require all granted
</Directory>
DirectoryIndex index.html index.php

設定を変更したらapachectl configtestで文法を確認してから再読み込みしてください。Apache 2.2から2.4への書き換え例はApache公式のアップグレードガイド(英語)にあります。外から見て403が解消したかは、HTTPヘッダーチェッカーでステータスコードが200に戻ったかで確認できます。

注意: Require all grantedは公開するディレクトリだけに書いてください。Apacheの公式ドキュメントは、ファイルシステムのルート(<Directory "/">)をRequire all deniedで拒否し、公開する場所だけを許可するよう推奨しています(Apacheのセキュリティのヒント)。ルートを許可すると、サーバー上の他のファイルまで配信される恐れがあります。

403 vs 401 vs 404:それぞれの違い

これら3つのエラーコードはよく混同されます。それぞれの違いを以下に説明します。

ステータスコード意味修正可能か?例
401 Unauthorizedまずログインが必要はい — 有効な認証情報を提供ログインせずに管理パネルにアクセス
403 Forbiddenログイン済みだがアクセス権がない場合による — サーバーがブロック中他のユーザーのファイルにアクセスしようとする
404 Not Foundページが存在しないURLのスペルを確認削除された、または入力ミスのページを訪問

重要な違い:401エラーは認証を求めます。403エラーは、認証しても解決しないことを示しています。サーバーはすでに、あなたがこのリソースにアクセスできないと判断しています。404は、リソースがそもそも存在しないことを意味します。

サイズの大きすぎるCookieや壊れたURLなど、リクエスト自体が不正な形式だとしてサーバーが拒否した場合は、代わりに400 Bad Requestが返されます。

403 Forbiddenエラーの一般的な原因

403エラーが発生する理由を理解することで、より速く修正できます。以下は、訪問者とサイト管理者別に分類した最も一般的な原因です。

  • ファイル権限の誤設定 — ファイルが600、フォルダが700に設定されていると公開アクセスがブロックされます
  • .htaccessルールの誤設定 — denyディレクティブやmod_rewriteルールがリクエストをブロック
  • indexファイルの欠如 — index.htmlやindex.phpがなく、ディレクトリリスティングが無効
  • IPブロック — サーバーやファイアウォールのルールがIPアドレスや国をブロック
  • VPN、プロキシ、データセンターのIP — 多くのサイト(動画配信、チケット販売、アダルト、銀行)は方針としてVPNやホスティング事業者のIP帯をブロックしており、共有のVPN IPがブロックリストに載っていることもあります
  • ホットリンク保護 — 他のドメインからの画像やファイルへの直接リンクをサーバーがブロック
  • WordPressプラグインの競合 — WordfenceやiThemesなどのセキュリティプラグインがリクエストをブロック
  • Web Application Firewall(WAF) — Cloudflare、Sucuri、またはModSecurityがリクエストを検出
  • HTTPSやクライアント証明書のルール — HTTPSを必須にしているサーバー(IIS 403.4)やクライアント証明書を要求するサーバー(IIS 403.7)は、それがないリクエストを拒否します。期限切れの証明書では403ではなく、ブラウザのプライバシー警告が表示されます
  • レート制限 — 短時間に同じIPから大量のリクエストがあった場合。多くのサーバーは429 Too Many Requestsで応答しますが、403を返すファイアウォールもあります

訪問者としての403エラーの修正方法

自分が所有していないウェブサイトで403エラーが表示される場合、以下の手順を試してください。上から順番に進めてください。

1. URLを確認する

最もシンプルな修正が正解であることが多いです。ディレクトリURLではなく、ページURLにアクセスしていることを確認してください。多くのサーバーはデフォルトでディレクトリブラウジングをブロックしています。

例えば、https://example.com/images/(フォルダ)にアクセスするとほとんどのサーバーで403が返されますが、https://example.com/images/logo.png(特定のファイル)は問題なく動作します。タイプミスがないか確認し、URLが実際のページを指していることを確認してください。

2. ブラウザのキャッシュとCookieをクリアする

ブラウザが古いCookieやキャッシュされた認証トークンを送信しており、サーバーがそれを拒否している可能性があります。これらをクリアすると、新しいリクエストが強制されます。

text
Chrome:  Settings → Privacy → Clear browsing data → Cookies + Cached images
Firefox: Settings → Privacy → Clear Data → Cookies + Cache
Safari:  Settings → Privacy → Manage Website Data → Remove All
Edge:    Settings → Privacy → Clear browsing data → Cookies + Cache

クリアした後、ブラウザを閉じて再度開き、URLにもう一度アクセスしてみてください。

3. VPNまたはプロキシを無効にする

VPN、プロキシ、Torは、データセンターにある共有IPアドレスからあなたの通信を送り出します。多くのサイト(特に動画配信、チケット販売、アダルト、銀行のサイト)はこうしたIP帯をまとめてブロックしており、他の誰かが悪用した共有IPはブロックリストに載っていることもあります。

VPNを切断して再読み込みしてください。ページが開けば、ブロックされているのはVPNのIPです。別のサーバーを選ぶか、そのサイトではVPNをオフにしてください。VPNを使っていない場合は、自分のIPアドレス確認で自分のIPを、IPブラックリストチェックでその評判を確認できます。

4. 別のネットワークやデバイスを試す

403エラーが続く場合、別のネットワークに切り替えてください(Wi-Fiの代わりにモバイルデータ、またはその逆)。これにより、IPアドレスがブロックされているかどうかを判断できます。

別のデバイスやブラウザで試すこともできます。あるブラウザではページが読み込まれるが別のブラウザでは読み込まれない場合、問題はキャッシュデータやブラウザの拡張機能に関連している可能性が高く、IPブロックではありません。

Xの動画で「video.twimg.com のサーバーがエラーを返しました: 403 Forbidden」と出る場合

「このサイトに問題があるようです」「video.twimg.com のサーバーがエラーを返しました: 403 Forbidden」は、Firefoxのエラー画面の文言で(Firefoxの日本語翻訳ファイル)、サーバーが403 Forbiddenを返したことを示しています。video.twimg.comはX(旧Twitter)が動画ファイルを配信するサーバーで、X APIのデータ辞書でも動画のURLはこのホスト名になっています。つまり、動画ファイルを直接開こうとしたリクエストを、Xのサーバーが拒否したという意味です。

Xは、動画サーバーがどのような場合に403を返すかを公開していません。閲覧者ができる確認は次のとおりです。

  • 元のポストから再生する: 動画ファイルのURL(video.twimg.com/…)を直接開いた場合は、そのポストをx.comか公式アプリで開いてください。ポスト上で再生できれば、問題は直接リンクの開き方だけです。
  • ポストが表示されるか確認する: ポストが削除されている場合や、国や地域によって表示が制限されている場合は、閲覧者の側で直す方法はありません。
  • 拡張機能や外部アプリを外す: 動画保存用の拡張機能や非公式アプリでこの表示が出る場合は、それらを無効にして、x.comや公式アプリで再生できるか確認してください。
  • X全体の障害を疑う: どの動画も再生できない場合は、サーバーダウンチェックでx.comが応答しているか確認してください。

サイト管理者としての403エラーの修正方法

訪問者がサイトで403エラーを報告している場合、または自分で確認している場合、修正はほぼ常にサーバー設定にあります。以下のチェック項目を順番に確認してください。

5. ファイルとディレクトリの権限を修正する

ファイル権限の誤設定は、ウェブサーバーにおける403エラーの最大の原因です。ウェブサーバーの標準的な権限は、ディレクトリが755、ファイルが644です。

これらの数字の意味:最初の桁は所有者の権限、2番目はグループ、3番目はその他全員です。7 = 読み取り + 書き込み + 実行、5 = 読み取り + 実行、4 = 読み取りのみ。

bash
# Fix directory permissions (755 = owner rwx, group rx, others rx)
find /var/www/html -type d -exec chmod 755 {} \;

# Fix file permissions (644 = owner rw, group r, others r)
find /var/www/html -type f -exec chmod 644 {} \;

# Verify ownership (should match your web server user)
ls -la /var/www/html/

# Change ownership to web server user if needed
chown -R www-data:www-data /var/www/html/

6. .htaccessルールを確認する

Apacheサーバーでは、.htaccessファイルがアクセスルールを制御しています。1行の誤った設定で全訪問者をブロックする可能性があります。Deny from allディレクティブや過度に制限的なRequireルールを確認してください。

最も速いテスト方法:.htaccessを一時的に.htaccess.bakにリネームします。403エラーが消えれば、問題はそのファイルにあります。

bash
# Temporarily rename .htaccess to test
mv /var/www/html/.htaccess /var/www/html/.htaccess.bak

# If 403 goes away, check the file for deny rules:
grep -i 'deny\|require\|allow' /var/www/html/.htaccess.bak

# Common problematic lines:
# Deny from all
# Require all denied
# Order deny,allow

.htaccessなしでサイトが動作する場合は、1行ずつ確認してください。正当なトラフィックをブロックしている可能性のあるDeny from allやRequire all deniedディレクティブを探し、意図したものだけをブロックする具体的なルールに置き換えてください。

7. デフォルトのindexファイルを追加する

訪問者がファイルを指定せずにディレクトリURL(example.com/blog/など)をリクエストすると、サーバーはデフォルトのindexファイルを探します。存在せず、ディレクトリリスティングも無効の場合、403エラーが返されます。

解決策:公開アクセス可能な各ディレクトリにindex.htmlまたはindex.phpファイルを作成します。ディレクトリリスティングを許可するように設定することもできますが、一般的にはセキュリティリスクになります。

apache
# In .htaccess or Apache config — set default index files
DirectoryIndex index.html index.php index.htm

# If you want to allow directory listing (not recommended for production):
Options +Indexes

8. WordPressプラグインを無効にする

Wordfence、iThemes Security、Sucuri、All In One WP Securityなどのセキュリティプラグインは、疑わしいと判断したリクエストをブロックして403エラーを引き起こすことがあります。これはプラグインの更新やルール変更後に頻繁に発生します。

テストするには、FTPまたはSSH経由でプラグインフォルダをリネームして、すべてのプラグインを一度に無効にします。

bash
# Disable all plugins by renaming the folder
mv /var/www/html/wp-content/plugins /var/www/html/wp-content/plugins.bak

# If 403 goes away, re-enable plugins one by one:
mv /var/www/html/wp-content/plugins.bak /var/www/html/wp-content/plugins
# Then deactivate/reactivate each plugin from WordPress admin

403エラーが消えたら、プラグインを1つずつ再有効化して原因を特定してください。プラグインのファイアウォールまたはセキュリティログで、ブロックされたリクエストを確認してください。

9. IPブロックとファイアウォールルールを確認する

サーバーのファイアウォールやホスティングコントロールパネルが、特定のIPアドレス、範囲、または国全体をブロックしている可能性があります。これはfail2ban、CSF(ConfigServer Security & Firewall)、またはホスティングレベルのIPブロックリストでよく見られます。

ファイアウォールルールとサーバーログを確認して、正当なIPがブロックされていないか確認してください。

bash
# Check if an IP is blocked by iptables
iptables -L -n | grep "203.0.113.50"

# Check fail2ban jail status
fail2ban-client status

# Unban a specific IP
fail2ban-client set <jail-name> unbanip 203.0.113.50

# Check Apache deny rules in server config
grep -r 'Deny from\|Require not ip' /etc/apache2/

10. HTTPSとクライアント証明書のルールを確認する

TLSに関係する403が起きるのは2つの場合です。サーバーがHTTPSを必須にしているのにリクエストが平文のHTTPで届いた場合(IISはこれを403.4「SSL required」として報告します)と、サーバーがクライアント証明書を要求しているのに訪問者が提示しなかった場合(IIS 403.7、SSLVerifyClientを使ったApacheのルール)です。証明書の期限切れや不一致では、ブラウザのプライバシー警告が表示され、403になることはありません。

同じURLをHTTPとHTTPSで比べ、証明書そのものはDNS RobotのSSLチェッカーで確認してください。

bash
# Same page over HTTP and HTTPS: a 403 on one only points at a scheme rule
curl -sI http://example.com/page | head -1
curl -sI https://example.com/page | head -1

11. Cloudflareの403 / Error 1020を修正する

Cloudflareを使っている場合、403はあなたのサーバーではなくCloudflareから返されていることがあり、そのページを見ればどの機能が作動したかがわかります。WAFのカスタムルールやマネージドルールでは「Sorry, you have been blocked」が表示され、Blockアクションでカスタムページのないその他のセキュリティ機能ではError 1020: Access deniedが表示されます(Cloudflareのドキュメント、2026年10月更新)。どちらにもRay IDが記載されています。

訪問者にRay IDが写ったスクリーンショットをもらい、ダッシュボードのSecurity → Analytics → EventsでそのRay ID(または訪問者のIP)を検索してください。イベントに、作動したルールが正確に表示されます。全体のセキュリティを下げるのではなく、そのルールだけを調整しましょう。

  • Security → WAF — カスタムルールを確認し、正当なパスがブロックされていないか確認
  • Security → Analytics → Events — Ray IDを探し(タイムスタンプはUTC)、どのルールがブロックを引き起こしたかを確認
  • Security → Bots — Bot Fight Modeが正当なクローラーやAPIクライアントをブロックする場合がある
  • Security Level — 「I'm Under Attack」に設定されている場合、すべての訪問者にチャレンジページが表示される
  • IP Access Rules — IPや国が誤ってブロックされていないか確認

12. Nginxの403 Forbiddenを修正する

Nginxは、いくつかの特定の設定問題で403を返します。最も一般的なのは、Nginxのワーカープロセスにファイルの読み取り権限がない場合、またはindexファイルのないディレクトリでautoindexディレクティブがオフになっている場合です。

nginx
# Check Nginx error log for the exact cause
tail -f /var/log/nginx/error.log

# Common Nginx 403 causes and fixes:

# 1. Permission denied — Nginx runs as 'nginx' or 'www-data' user
# Fix: ensure the user running Nginx can read the files
chown -R nginx:nginx /var/www/html/

# 2. No index file in directory — add to server block:
location / {
    index index.html index.php;
}

# 3. SELinux blocking access (CentOS/RHEL)
setsebool -P httpd_read_user_content 1
# Or set proper context:
chcon -R -t httpd_sys_content_t /var/www/html/

SELinuxは、CentOSやRHELシステムにおけるNginx 403エラーの見落とされがちな原因です。ファイル権限が正しくても、SELinuxがNginxプロセスによるファイル読み取りをブロックする場合があります。上記のchconコマンドでこれを修正できます。

「403 Forbidden nginx」とは:error.logのメッセージ別の原因

「403エラーの表示例」の表のとおり、「403 Forbidden」の下の「nginx」は拒否したWebサーバーソフトの名前です。「nginx/1.24.0」(例)のようにバージョンまで表示されるのは、server_tokensが初期設定のonになっているためです(nginxのドキュメント)。サイト管理者は、error.logに残る行で原因を見分けられます。

error.logのメッセージ原因解決方法
open() "/var/www/html/index.html" failed (13: Permission denied)nginxの実行ユーザー(www-dataやnginx)がファイルを読めない、または途中のディレクトリに実行(x)権限がないnamei -lで各階層を確認し、ディレクトリ755・ファイル644にする。権限が正しいのに続く場合は上のSELinuxを確認
directory index of "/var/www/html/" is forbidden末尾が「/」のディレクトリへのアクセスで、indexに指定したファイルがなく、autoindexもoffindex.htmlを置くか、indexディレクティブにファイル名を追加する。try_filesの$uri/がindexのないディレクトリに当たっていないかも確認
"/var/www/html/index.php" is forbidden (13: Permission denied)indexファイルはあるが、読み取り権限がない1行目と同じく権限と所有者を直す
access forbidden by ruledenyディレクティブが接続元のIPアドレスに一致したserver・locationブロックのallowとdenyを確認する。上から順に評価され、最初に一致したルールが使われる
bash
# 直近のエラーを確認(ログの場所は環境によって異なります)
sudo tail -n 20 /var/log/nginx/error.log

# パス上の各ディレクトリの所有者と権限を一覧表示
namei -l /var/www/html/index.html

# 設定の文法を確認してから再読み込み
sudo nginx -t && sudo systemctl reload nginx

Linuxでは、ファイルを開くにはパス上のすべてのディレクトリに実行(検索)権限が必要です(open(2)のmanページ)。ファイル自体が644でも、/home/userのような親ディレクトリが700だとnginxは読めず、403になります。

HTTPヘッダーを使った403エラーのデバッグ

原因を特定できない場合は、サーバーのHTTPレスポンスヘッダーを確認してください。リクエストがブロックされた理由に関する手がかりが含まれていることがよくあります。

DNS RobotのHTTPヘッダーチェッカーまたはターミナルでcurlを使用して、完全なレスポンスを確認できます。

bash
# Check the status line and headers of a 403 page
curl -I https://example.com/restricted-page

# Headers that name the system in the path:
# server: cloudflare + cf-ray: 8f3a...-LAX   → Cloudflare
# server: AkamaiGHost                       → Akamai
# server: CloudFront + x-amz-cf-id          → Amazon CloudFront
# x-sucuri-id                               → Sucuri firewall
# x-iinfo                                   → Imperva
# server: nginx / Apache / LiteSpeed        → the site's own web server

403の応答にCDNやファイアウォールのヘッダーがあれば、ブロックはリクエストがあなたのサーバーに届く前に起きているので、そのサービスのイベントログを確認してください。Webサーバー自身の名前が出ている場合、ルールはサーバーの設定、.htaccess、またはプラグインにあります。

403エラーはSEOに影響するか?

はい、クロール対象のページで403エラーが起きると、検索順位に悪影響が出ます。Googleは4xxのステータスコード(429を除く)を返すURLをインデックスに登録せず、すでに登録されているURLは削除します。

意図的に制限されたページ(管理パネル、プライベートファイル)での403エラーは正常であり、SEOには影響しません。しかし、403を返す公開ページはGoogleのインデックスから外れます。

Search Consoleのページ インデックス登録レポートでは、これらは「アクセス禁止(403)が原因でブロックされました」と表示されます。Googlebotは認証情報を送らないため、公開ページで403が出ているなら、ファイアウォールやボット対策のルールがGooglebotをブロックしています。

403エラーを防ぐ方法

予防はトラブルシューティングよりも簡単です。以下の対策を実施して、サイトでの403エラーを防ぎましょう。

  • 最初から正しい権限を設定する — ディレクトリは755、ファイルは644、777は絶対に使わない
  • 常にindexファイルを用意する — 公開ディレクトリにはindex.htmlまたはindex.phpが必要
  • .htaccessの変更をテストする — 変更前にバックアップを取り、1つずつルールをテスト
  • WAFルールを監視する — Cloudflare、Sucuri、またはModSecurityのログを毎週確認
  • 自分のIPをホワイトリストに登録する — オフィス、自宅、デプロイサーバーのIPがホワイトリストに入っていることを確認
  • HTTPヘッダーチェッカーを使用する — ページが403ではなく200を返していることを定期的に確認
  • 監視を設定する — ページが403を返し始めた時にアラートを受け取るためのアップタイム監視を使用

403になるのはみんな?それとも自分だけ?

DNS Robotの無料の鯖落ちチェッカーは、複数の地点から同時にページへアクセスし、それぞれが受け取ったステータスを表示します。どこからでも403ならサイト側のルール、自分だけ403ならあなたの回線、VPN、IPアドレスが原因です。

出典

  1. RFC 9110: HTTP Semantics, §15.5.4 403 Forbidden, IETF
  2. Error 1020 (Cloudflare 1xxx errors), Cloudflare
  3. How HTTP status codes, and network and DNS errors affect Google Search, Google Search Central

よくある質問

403 Forbiddenとはどういう意味ですか?

サーバーがリクエストを理解したうえで、その実行を拒否しているという意味です。ページは存在しますが、あなたには表示が許可されていません。RFC 9110もまさにこの言葉で定義しています。サイト側のルールが変わらない限り、ログインや再読み込みをしても結果は変わりません。

「403 Forbidden nginx」とはどういう意味ですか?

そのサイトはWebサーバーソフトのnginxで動いており、nginxがあなたのリクエストを拒否したという意味です。「nginx」(またはnginx/1.27.4のようなバージョン表記)は標準のエラーページに出るサーバー名にすぎず、ブロックしているのはそのサイトの設定です。たとえばdenyルール、ブロックされたIPやVPN、indexファイルのないフォルダなどです。

「Forbidden」と「You don't have permission to access this resource」とはどういう意味ですか?

日本語にすると「禁止:このリソースにアクセスする権限がありません」で、WebサーバーソフトApacheの標準の403ページです。サイトの設定(多くは.htaccessのルールやファイル権限)が、そのアドレスへのアクセスを拒否しています。訪問者にできるのは自分の側(VPNや回線)の確認だけで、ルールを変えられるのはサイトの管理者です。

403 Forbiddenエラーを解決するにはどうすればいいですか?

訪問者の場合は、URLを確認し、VPNやプロキシをオフにし、別の回線で試し、そのサイトのCookieを削除してください。サイト管理者の場合は、フォルダを755、ファイルを644に設定し、公開フォルダごとにindexファイルがあることを確かめたうえで、サーバー設定、.htaccess、ファイアウォールにdenyルールがないか探してください。

403 Forbiddenはブロックされているという意味ですか?

場合によります。モバイルデータで、またはVPNをオフにするとページが開くなら、あなたのIPやネットワークがブロックされています。どこから誰が開いても失敗するなら、ページがアクセス制限されているか、設定に誤りがあります。複数の地点から確認できるチェッカーを使えば、どちらなのかが一度でわかります。

VPNを使うと403 Forbiddenになるのはなぜですか?

多くのサイトは方針としてVPN、プロキシ、データセンターのIPアドレスをブロックしており、共有のVPN IPはブロックリストに載りがちです。VPNをオフにするか、別のサーバーに切り替えてください。サイトが意図的にVPNをブロックしている場合は、あなたの側でどの設定を変えても通れません。

403と401の違いは何ですか?

401 Unauthorizedは認証を求めるもので、有効な認証情報があればアクセスできます。403 Forbiddenは、サーバーがあなたが誰かを把握していても拒否します。新しい認証情報が役立つのは、拒否の理由が認証情報そのものだった場合だけです。

CloudflareがError 1020を表示するのはなぜですか?

サイト管理者が設定したCloudflareのセキュリティ機能が、あなたのリクエストをブロックしました。WAFのルールの場合は代わりに「Sorry, you have been blocked」と表示され、1020はBlockアクションを持つその他の機能から返されます。管理者にRay IDを伝えれば、Security → Analytics → Eventsで該当するルールを見つけられます。

403エラーを修正するファイル権限は何ですか?

ディレクトリは755、ファイルは644にし、所有者はWebサーバーの実行ユーザーにします。777は絶対に使わないでください。サーバー上の誰でもファイルを書き換えられるようになります。CentOSやRHELでは、SELinuxのコンテキストも確認してください。

403エラーはSEOに影響しますか?

はい。Googleは403を返すURLをインデックスに登録せず、登録済みのURLも削除します。Search Consoleのページ インデックス登録レポートでは「アクセス禁止(403)が原因でブロックされました」と表示されるので、ファイアウォールやボット対策のルールがGooglebotを許可しているか確認してください。

著者について

Shaik Vahid

DNS Robot 創設者. Vahid は長年 Web ホスティングのサポートで、お客様のドメイン、DNS レコード、SSL 証明書、メール配信の問題を解決してきました。DNS Robot のツールを開発し、実際によく起きるエラーをもとにこれらのガイドを書いています。

サイトダウンチェッカー

落ちてるのは全員か自分だけか?11か所とお使いの回線からサイトを確認し、実際の画面のスクリーンショットも表示