Webサイトを運営している際や閲覧している際、403 forbiddenという表示が出て戸惑った経験はないでしょうか。しかし、具体的な解決方法が分からず、どのようにすれば良いのか悩むケースもあると思います。
そこで、本記事では403 forbiddenのエラーが発生する原因や、具体的な対処法について解説します。また、403 forbidden以外のHTTPステータスコードも紹介しますので、ぜひ参考にしてください。
目次
403 forbidden(403エラー)とは
まずは、403 forbiddenの意味から解説します。403 forbiddenとは、HTTPステータスコードのことで、Webサイトが閲覧禁止になっている状態を表すものです。HTTPステータスコードとは、ユーザーに対して、Webブラウザから送られるコードのことを指します。
403 forbiddenは「403エラー」とも呼ばれ、この403がHTTPのステータスコードです。403 forbiddenのページが存在すると、検索エンジンからの評価が落ちるという危険性があります。そうなると、せっかく行ったSEO対策の効果が落ちてしまいます。したがって、Webサイト運営者側で403 forbiddenの状態である場合は、早急に対策をすることが大切です。
その他にも代表的なエラーとして、404 not found(404エラー)が挙げられます。
関連記事:404 not found(404エラー)ってなに?今さら聞けない原因と対処法を解説
403 forbiddenの原因
403 forbiddenが起こってしまう原因は多岐にわたります。したがって、早急に原因を究明することが大切です。403 forbiddenが起こる原因の一例としては、以下が挙げられます。
● インデックスページが存在しない
● 適切なディレクトリにアップロードされていない
● アクセス権限もしくは所有権
● アクセスの負荷がかかりすぎている
● DNSの問題
● サーバーのアカウントが停止している
● WAF機能の誤作動
それぞれ順番に見ていきましょう。
インデックスページが存在しない
まず、403 forbiddenが起こる原因としては、インデックスページ(ファイル)が存在しないことが挙げられます。
「index.php」もしくは「index.html」のどちらか一方が存在しない場合は、403 forbiddenと画面上に表示されます。したがって、インデックスファイルがサーバーに存在するかを確認しましょう。
適切なディレクトリにアップロードされていない
Webサーバーの適切なディレクトリに、適切にファイルがアップロードされていない場合でも403 forbiddenは表示されます。
Webサーバーからコンテンツを公開する場合、コンテンツを公開できるFTPクライアントは複数存在します。そのため、FTPクライアントが間違っていたり、ディレクトリが不適切だったりする可能性が考えられます。
ディレクトリにファイルをアップロードした後、オンラインでWebサイトのURLが表示されるかを確認してみましょう。
アクセス権限もしくは所有権
Webサイトの運営者側で、アクセス権もしくは所有権の設定を間違えているというケースも考えられます。本来は閲覧を許可しないといけないにもかかわらず、間違えてブロックしているということです。
たとえば、悪質なWebサイトやユーザーに対しては、アクセス権の設定として拒否していても問題ありません。しかし、あえて拒否する必要がない場合は、改めてアクセス権と所有権の確認をしましょう。
また、Webサイトの運営者側のミスとして、「.htaccess」の記述が間違っているケースもあるので注意が必要です。
アクセスの負荷がかかりすぎている
特に、レンタルサーバーを利用してWebサイトを運営している場合は、アクセスの負荷がかかりすぎていることにより、403 forbiddenが表示されるケースも存在します。特段、Webサイトを運営する中で大きな変更をしておらず、突然403 forbiddenが起きた場合は、このアクセス超過が多くの原因です。
レンタルサーバーを借りている場合は、月間や同時接続数でどの程度のアクセスにまで耐えられるのか、事前に確認すると良いでしょう。仮に、現状のアクセス数が多く危険な場合は、プランの引き上げを検討することを推奨します。
関連記事:サーバーとは何か?サーバー構築からサーバーエラーやサーバーダウンまで徹底解説
DNSの問題
まれに、ドメインの設定を間違えていることにより、403 forbiddenが表示されるケースもあります。通常はネットワーク上でエラーが起こりますが、この場合にはWebサーバー上で403 forbiddenの状態になるということです。したがって、ドメインとDNSが適切に設定されているかを確認するようにしましょう。
関連記事:DNS(Domain Name System)とは?意味や基本を解説します
サーバーのアカウントが停止している
サーバーのアカウントが停止している場合も「403 forbidden」エラーが発生します。アカウントを保持していても、何らかの理由でそのアカウントが停止されるとサーバーの方も停止されます。
こういった場合は規約に違反していないかを確かめ、メールなどで警告が届いていないかを確認します。また管理画面が閲覧できる場合は管理画面のサーバー利用状況なども合わせて確認します。
WAF機能の誤作動
WAF機能が誤作動することによっても「403 forbidden」エラーが発生してしまう場合があります。
WAF機能とは
WAFは「Web Application Firewall」の略で、Webアプリケーションにおける脆弱性を狙った攻撃からWebサイトを保護するセキュリティ対策のことを指します。
主に顧客情報やクレジットカード情報のやり取りが発生するインターネットバンキングやECサイトなどが保護対象となります。
WAFはアプリケーションに直接組み込むものではなく、Webサーバーの前段に設置することで、サーバー上で稼働している複数のWebアプリケーションをまとめて防御します。
強力であるがゆえの誤動作
WAFのこのような特性上非常に強力なセキュリティとして機能し、セキュリティーレベルをあまりに厳しくすると、稀に管理者の動作や正常な通信をも不正と判断して「403 forbidden」エラーを引き起こしてしまうことがあります。
こういったときはサーバーの管理画面からWAF設定を確認して、オンになっている場合は「一度オフにしてまたオンにする」「WAFの除外設定を行う」などの解決策があります。
WAFの設定はレンタルサーバーを提供している企業によってそれぞれ異なりますので、サポートに問い合わせることをおすすめします。
403 forbiddenの種類
403 forbiddenと一口に言っても、多くの種類が存在します。ここでは、その一例を紹介します。
● “Forbidden ? You don’t have permission to access / on this server”
● “403 ? Forbidden: Access is denied”
● “Error 403 ? Forbidden”
● “403 ? Forbidden Error ? You are not allowed to access this address”
● “403 Forbidden ? nginx”
● “HTTP Error 403 ? Forbidden ? You do not have permission to access the document or program you requested”
● “403 Forbidden ? Access to this resource on the server is denied”
● “403.That’s an error.Your client does not have permission to get URL / from this server”
● “You are not authorized to view this page”
● “It appears you don’t have permission to access this page.”
これらの種類が存在するうえで、次に403 forbiddenの解決方法をご紹介します。
403 forbiddenの対処法
403 forbiddenには多くの種類がありますが、基本的な解決方法は同様です。
● パーミッション(ファイルアクセス権)の確認
● インデックスファイルがディレクトリに存在するか
● 数時間待てば自然に解決するケースもある
● ユーザー側では対処できない
それぞれの解決方法を順番に解説します。
パーミッション(ファイルアクセス権)の確認
まずは、パーミッション(ファイルアクセス権)を確認しましょう。所有者やその他のユーザー、所有グループなどの設定が適切であるかを確認することが大切です。また、単純に「.htaccess」の記述が不適切な可能性もあるので、その点も含めて確認するようにしてください。
インデックスファイルがディレクトリに存在するか
「index.php」や「index.html」が存在しない場合でも、403 forbiddenは表示されます。そのため、インデックスファイルがディレクトリに存在するかを確認しましょう。
基本的には、上記2つの方法で解決できるケースがほとんどです。万が一解決できない場合は、DNSやドメインの設定なども含めて確認してみてください。
数時間待てば自然に解決するケースもある
ここまで、403 forbiddenの概要や原因を解説してきました。実際、Webサイトの管理者からすると、403 forbiddenが突然に起こると戸惑ってしまうでしょう。しかし、403 forbiddenは、数時間待てば解決するケースも存在します。
なぜなら、多くの403 forbiddenが表示される原因は、アクセス過多が原因であるためです。アクセスが集まりすぎていることによってサーバーに負荷がかかり、Webサイトを一時的に表示させられない状態になっているのです。
しかし、当然ながら、その他の原因で403 forbiddenが表示されている可能性も十分に考えられるので、必ず原因の究明は早急に行うことが大切です。
ユーザー側では対処できない
ここまで、Webサイトの管理者側の403 forbiddenの原因を解説してきました。一方で、ユーザー側でなにか解決する手段があるのか気になるという人も多いかもしれません。ですが残念ながら、ユーザー側では解決することができません。
あくまで、403 forbiddenはWebサイトのドメインやDNS、サーバー側の問題です。したがって、これらにアクセスできる人間でない限り、解決するのは不可能です。
もし閲覧したいWebサイトで403 forbiddenが表示される場合は、数時間空けてから、再度アクセスを試みましょう。
403 forbidden以外のHTTPステータスコード
以下では「403 forbidden」以外のHTTPステータスコードを解説します。
200番台 (成功レスポンス) |
200 OK |
「200 OK」はサーバーへのリクエストが正常に処理され、問題なく閲覧できる状態を示すHTTPステータスコードです。ブラウザにおいてページが正常に表示された場合は「200 OK」を返していることがほとんどです。 | |
202 Accepted | |
「202 Accepted」はサーバー側がリクエストを受け付けたが、処理は未完了の状態を示します。処理は行われたが完了していない、もしくは処理がまだ始まっていない可能性もあります。また処理が行われる際に拒否される可能性もあります。最終的には処理されるかどうかは分かりません。 | |
300番台 (リダイレクト) |
301 Moved Permanently |
「301 Moved Permanently」はリクエストしたページが恒久的な移転を行った際に示されます。旧URLから新URLへの変更時に「301 Moved Permanently」が示され転送処理がうまくいけば、SEO評価を受け継ぐことができます。 | |
302 Found | |
「302 Found」はリクエストしたページが一時的に移転している際に示されます。上述「301 Moved Permanently」との違いとしては、恒久的か一時的かという点になります。Webサイトのメンテナンスを行う場合や期間限定でページを公開するときなどに利用します。 | |
400番台 (クライアントエラー) |
400 Bad Request |
「400 Bad Request」はサーバー側がリクエストを処理できなかった場合に示されます。サーバー側のどのステータスコードにも該当しないとサーバーが判断した場合に、クライアント側の一般的なエラーとして返します。「400 Bad Request」はサーバー側で処理を開始する前に、すでにクライアント側のリクエストに問題があることを示唆しています。 | |
404 Not Found | |
「404 Not Found」はリクエストされたページにサーバーがアクセスできない状態にある場合に示されます。該当ページが存在しないか、もしくはサーバーが落ちているときなどに表示されます。主にページを削除したあと適切な処置を行わず、リンク切れを発生させている場合などによく見られます。ユーザー離脱の観点からも、オリジナルのエラーページを設定して違うページへの移動を促すか、リンクそのものを削除するなどして対策を施します。 | |
500番台 (サーバーエラー) |
500 Internal Server Error |
「500 Internal Server Error」はサーバー側でエラーが発生している状態にある場合に示されます。クライアント側に問題はなくてもサーバー側の問題によりリクエストが実行できないときなどに返されます。仮にサーバーが正常であっても、アプリケーションが停止している場合などは同様に「500 Internal Server Error」が返されます。 | |
502 Bad Gateway | |
「502 Bad Gateway」はクライアントとサーバーをつなぐ「ゲートウェイ」や「プロキシサーバー」などが、異常もしくは不正なリクエストを受け取りそのリクエストを拒否した場合に示されます。上述「500 Internal Server Error」との違いとしては、サーバー側の本体に問題が発生している状態か、ゲートウェイやプロキシサーバー側の機器に問題が発生している状態か、という点です。 | |
503 Service Unavailable | |
「503 Service Unavailable」は過負荷やサーバーメンテナンスなど何らかの理由により、一時的にWebサイトが利用できない状態にある場合に示されます。例えばサーバー側の閲覧制限機能が働いたときなどに発生します。特にサーバーへのアクセス量が急増し、サーバーの許容能力を超える負荷がかかりそうな場合に発生する「503 Service Unavailable」エラーは、迅速な復旧ができない場合がほとんどです。こういったとき通常に戻すためには、アクセス量が減るまで待つしかありません。このようなエラーを出さないためには、許容能力に余裕のあるサーバーを選ぶか、転送速度を高める施策を講じる必要があります。 |
HTTPステータスコードの確認方法
以下でHTTPステータスコードの確認方法を解説します。
Googlechromeを使用する
GooglechromeでHTTPステータスコードを確認する場合はブラウザをアクティブにした状態で「F12キー」を押すか、閲覧しているブラウザ上で右クリックし、メニューから「検証」をクリックします。
するとブラウザにデベロッパーツールが起動しますので、画面上部のメニュー欄より「Network」をクリックします。
すると上図のようにHTTPステータスコードが表示されます。
HTTP Status Code Checkerを使用する
HTTP Status Code Checkerを使用してHTTPステータスコードを確認する場合はHTTP Status Code Checker(https://httpstatus.io/)のサイトにアクセスし、枠内に対象URLを入力して「Check status」をクリックします。(対象URLは複数入力できます)
すると以下のようにチェックした対象URLのHTTPステータスコードが表示されます。
このツールの便利なところは対象URLを一括でチェックできる上、CVS形式で結果をダウンロードできることです。複数URLをまとめてチェックして出力し、改善すべき対象URL一覧としてまとめれば、効率よくWebページに、テコ入れをしていくことができます。
まとめ
本記事では、403 forbiddenについて解説をしてきました。403 forbiddenはHTTPステータスコードのことで、Webサイトが閲覧禁止になっている状態を表します。
インデックスページが存在しなかったり、適切なディレクトリにアップロードされていなかったりすることが原因で403 forbiddenは表示されます。
403 forbiddenが表示された場合は、パーミッションの確認やインデックスファイルの存在を確認するようにしましょう。
まずは、403 forbiddenが表示される原因を突き止めることから始めてみてはいかがでしょうか。