405 Method Not Allowedとは?エラーの原因と解決方法を解説
ブラウザで表示されるエラーの中に405 Method Not Allowedというものがあります。405 Method Not Allowedとは一体何なのか、405 Method Not Allowedのエラーが表示される原因と解決方法とともに解説します。
目次
405 Method Not Allowedエラーの原因と解決方法
インターネットで調べ物をすることも多い昨今、ブラウザであちこち開いて調べるなどしている人も多いでしょう。個人・会社のサイトを触っているという人もいる中、そんなエラーの解決に奔走しているという人もいるかと思います。
405 Method Not Allowedエラーとは
そんなWebサイトで表示されるエラーの中に405 Method Not Allowedというものがあります。まずは405 Method Not Allowedのエラーとはなにかという説明から説明していきます。
HTTPレスポンスステータスコードのひとつ
405 Method Not Allowedとは、HTTPレスポンスステータスコードの一つです。HTTPレスポンスステータスコードとはWebサイトの状態を示すサーバーからのレスポンスを意味するコードのことを言います。
大きく分けて5つに分類されていて、それぞれ次のような内容になっています。
番号 | 内容 |
---|---|
100番台 | 情報を示すもの。リクエストに対し、処理が継続されていることを示す。 |
200番台 | 成功を示すもの。リクエストを正しく受理したことを示す。 |
300番台 | リダイレクションを示すもの。リクエストを達成するため追加の処理が必要であることを返信していることを示す。 |
400番台 | クライアントエラーを示すもの。リクエストが正しく処理できていないことを示す。 |
500番台 | サーバーエラーを示すもの。文字通りサーバーに問題が生じていてエラーが起きていることを示す。 |
この記事で解説する「405 Method Not Allowed」は400番台のエラー、つまりクライアントエラーを示すものです。
直訳は「メソッドは許可されていない」
「405 Method Not Allowed」のうちの「Method Not Allowed」は直訳すると「メソッドは許可されていない」となります。
メソッドとは「目的を達成するために決められている方法ややり方」を意味するものです。それを許可されなかったことを示すエラーに当たります。
HTTPレスポンスステータスコードに当てはめると、「クライアントがサーバーに対して、やってほしいことを依頼するための方法」にあたります。
HTTPメソッドには下記の4つがよく使われているもので、それぞれ次のようなものです。
HTTPメソッド | 内容 |
---|---|
GET | データの取得をするときに利用するHTTPメソッド。Webページ自体の取得などで利用される。 |
POST | クライアントからサーバーに対しデータを送る際に利用するHTTPメソッド。新規作成時などで主に利用される。 |
PUT | クライアントからサーバーに対しデータを送る際に利用するHTTPメソッド。既存データの更新などで主に利用される |
DELETE | データの削除を行う際に利用するHTTPメソッド。既存データの削除(アカウント削除など)などで利用される。 |
どんな状況で表示される?
405 Method Not Allowedのエラーは、Webブラウザからサーバーに対しHTTPメソッドを送ってアクセス要求を送信し、サーバー側もそのHTTPメソッドを受信したもののその内容を拒否した際に表示されます。
HTTPメソッドでサーバーに送ったお願いをサーバー側が許可しなかった/拒否した、というと分かりやすいでしょうか。
そのHTTPメソッドは許可できない、とサーバーに言われたため、アクセス要求を送ったけれど受理されなかったと示しているのが405 Method Not Allowedということになります。
使用しているブラウザによって表示画面が少し違う
この405 Method Not Allowed、ブラウザによって表示されるエラーが異なることがあります。ブラウザだけでなく、サーバーによって変化する部分もあります。
基本的にWebプログラマーであれば見かけるエラーということもあり、違いを比較することは少ないですが、バリエーションとしては次のようなものがあります。
- 405 Not Allowed
- HTTP 405エラー
- Method Not Allowed
- HTTP 405 Method Not Allowed
- HTTPエラー405 – Method Not Allowed
405 Method Not Allowedエラーの原因
では、405 Method Not Allowedのエラーとは一体どういった原因で生じるのかの説明に移ります。
エラーメッセージに原因が記載されないため特定には時間がかかる
405 Method Not Allowedは、エラーメッセージに原因が記載されることがないため、特定するための時間が少しかかります。
そもそも、405 Method Not Allowedとはメソッドを受信しても、それが許可されないからと表示されるエラーです。
本来取得(GET)しかできないデータにも関わらず削除(DELETE)を投げたと言うような場合もありますので、そういった設定ミスなどの場合はどうしても特定して解決するのに時間を要する可能性があります。
特定のURLに対する特定のアクションの実行を許可しないように設定している
なお、間違ったメソッドを送信しているのではなく、特定のURLに対する特定のアクションの実行を許可していない場合にも405 Method Not Allowedのエラーが表示されることもあります。
原因としては必要なアクションの実行許可ができていないこと、と言えるでしょう。
管理者が「HTTPリクエストメソッド」を無効化/制限している場合が多い
なお、管理者側が「HTTPリクエストメソッド」を無効化・制限しているという場合が405 Method Not Allowedのエラーの原因としては多いです。メソッドの受信をしても許可をしてくれていないわけですからね。
解決方法
では、405 Method Not Allowedのエラーが表示されている場合、その原因を取り除いて解決するための方法とはどうすればいいのかと言う話に移ります。
サイトの管理者に連絡する
極まれとはいえ、閲覧者が405 Method Not Allowedのエラーに遭遇することもないわけではありません。閲覧していて405 Method Not Allowedのエラーが出た場合は、可能であればサイトの管理者に連絡しましょう。
サイト管理者の方でも405 Method Not Allowedのエラーが出ていることを把握できていない可能性もあるので、どのページで生じるのか、何をどうしたら405 Method Not Allowedのエラーが出たかも伝えておくと良いでしょう。
ウェブサイトのコードを念入りにチェックして不具合がないか確認
なお、サイト管理者側で405 Method Not Allowedのエラーが出ることを把握した場合、Webサイトのコードを念入りにチェックして、不具合がないか確認しましょう。
サーバー側でアクセス要求に正しく応答できない原因がそのコードにある可能性があるためです。コードの念入りなチェックではなく、開発用の環境下にコピーして、デバッグ作業をおこなうのでもOKです。
405 Method Not Allowedのエラーが再現できれば自ずと原因も絞り込めますので、コードを見てもわからない場合はそちらのほうが問題の原因を把握することがしやすいです。
サーバー側のログを調べる
サーバーのログとしては、アプリケーションログとサーバーログがあります。アプリケーションログとはWebサイトの履歴を確認できるもの、サーバーログとはサーバーの正常性や、実行しているハードウェア情報が確認できるものです。
アプリケーションのログではリクエストしたページ・提供したデータベースの実行結果などを確認可能ですし、サーバーログでは接続したサービスやサーバー自体のステータスなどの情報を確認できるます。
それらのログから405 Method Not Allowedの原因が分かることもあるため、サーバー側のログの方も確認して、問題があるのがどこなのかを解決できるようにしてみましょう。
サーバーの構成ファイルを確認
Webサーバーの構成ファイルについての確認もしてみてください。意図せず405 Method Not Allowedのエラーが表示される原因がそちらにある可能性もあります。サーバーの構成ファイルの内容を確認し、問題があればその部分を直しましょう。
サーバー内の.htaccessファイルにおかしなコードがある場合はそれをコメントアウトしてサーバーの再起動をしましょう。そういった確認をして、原因が特定できたらそこを訂正して解決するという方法をとってみてください。
WordPressサイトで表示された場合の対処法
さて、WebサイトをWordPressサイトで作成している場合、405 Method Not Allowedのエラーが生じた場合の対処法/解決方法の例を紹介していきますので、前述した方法も含めてそれぞれ確認して実行してみましょう。
なお、ここで示す解決方法を試す前に一度バックアップは取っておいてください。ミスをしてしまうことがあっても、バックアップを利用することで405 Method Not Allowedのエラーが出る状態とはいえもとに戻せます。
さて、まずは405 Method Not Allowedの画面が出るページが正しいURLかどうか確認してみましょう。サーバー上間違ったURLへのアクセスを拒否するよう設定されている場合に意外と多い405 Method Not Allowedエラーの理由です。
貼ってあるリンクがリンク切れになっていないかどうか一度確認してみましょう。
なお、405 Method Not Allowedのエラーがコードなどになく、WordPressにある場合もあります。
直近のアップデートで追加された新しいコードや拡張機能・テーマが405 Method Not Allowedの原因となっていることもあるため、WordPressを1つ前のバージョンに戻してみてください。この場合は必ずバックアップはしましょう。
なお、手動でのダウングレードではなくプラグインを利用した方法が比較的簡単です。WP Downgradeはダウングレードのプロセスの大部分を自動化してくれるため操作ミスなどもしづらいためおすすめです。
ダウングレードしても405 Method Not Allowedのエラーが表示されるようであれば原因は違ったということになるため、再度アップデートは実行しておいてください。
WordPressのアップグレードが原因でなくても、直近でインストールしたプラグインやテーマなどが原因ということもあります。プラグインやテーマを新しく入れた場合、動作に何かしらの影響が出ます。
それがWebサイトで405 Method Not Allowedのエラーが表示される原因となっていることもあるのです。プラグインやテーマを入れてから405 Method Not Allowedが表示されるようになったのであれば可能性が高いです。
一度入手したプラグインやテーマをアンインストールし、405 Method Not Allowedが表示されなくなっているかどうか確認してみてください。
WordPressのプラグインの無効化はWordPressの管理画面からプラグインの画面を開いておこないます。
プラグイン一覧から心当たりのあるものを1つずつ無効化して、それぞれを無効化するたびに405 Method Not Allowedのエラーが解決しているか確認しましょう。
テーマの場合も同様に、1つずつテーマを無効化し、それぞれを無効化するたびに405 Method Not Allowedのエラーが解決しているかどうか確認しましょう。テーマやプラグインに原因があった場合は開発者に連絡するなどもしましょう。
なお、プラグインに関しては、プラグインインストール時にデーターベース関連へ変更されてそれが原因だった、ということもあります。
プラグインやテーマの無効化ではこの部分は無効化できないため、データーベースを確認して、修正できるようであればおこないましょう。
WordPress内のカスタムコードに問題がある場合はアプリケーションのコードとスクリプトをデバックしましょう。これに関しては地道に確認して解決するようしていく方法なので、かなりの労力が必要です。
最後に
405 Method Not Allowedのエラーは、よほどのことがなければ閲覧者側で見かけることはないため、主に管理者向けの内容となりましたがいかがでしたでしょうか。
メソッドの許可がサーバー側でできないことが原因であるエラーなので、メソッド関係やサーバーなどに原因があることが多いため、解決方法の参考となったのであれば幸いです。