405エラー(405 Method Not Allowed)とは|原因や対処法を解説
ウェブサイトに「405エラー(405 Method Not Allowed)」が表示されると、多くの訪問者はページから離脱してしまうでしょう。405エラーが発生する場合には速やかに対応し、エラーを解消しなければなりません。
そもそも405エラーはどのように解消したらよいのでしょうか? 405エラーはどういう状況で発生するのか、またその対処法について詳しく解説します。
Contents
405エラー(405 Method Not Allowed)とは
ウェブページにまれに表示される「405エラー(405 Method Not Allowed)」は、許可されていないHTTPのメソッドでアクセスを試みた場合に発せられるエラーです。
よくあるエラーに「404 Not Foundエラー」があり名前は似ていますが、両者の性質は大きく異なります。
- 404エラー:「アクセスをリクエストしたページが存在しない」場合に発せられます
- 405エラー:「ページが存在しているにもかかわらず、アクセスを拒否されている状態」に発せられます
また、405エラーは利用するブラウザやサーバーによってエラー表記が異なるだけでなく、表記の違いによって問題点が異なります。そのため、想定しうる複数の要因のうち、どれがエラーの原因なのかを突き止めることが難しく、エラーの原因の究明および復旧には比較的時間がかかる傾向が見られます。
405エラーが表示される原因
405エラーが表示される主な原因は、ウェブページの表示を要求している側(クライアント)が、ページ情報のあるサーバーに許可されていないメソッドで表示を要求することにあります。残念ながら、405エラーが発生した際に表示されたページの内容だけでは、詳細な原因までは特定できません。
405エラーを解決するための対処法
前述の通り、405エラーでは、ウェブページを表示できない詳細な原因が一見ではわかりません。そのため、下記のパターンに分類される対処法をいくつか試して解決を試みる必要があります。
- どのウェブサイトにも共通する基本的な解決策
- WordPressを使用したサイトの解決策
405エラーが表示された場合、ウェブページの構築側は、クライアント側がどのような状態でも表示されるページを作ることで問題を解消できます。ただし、それでは工数、時間、費用もかかりすぎてしまうため、まずはどのウェブサイトでも共通して使える基本的な解決策を試してみましょう。
また、WordPressを使用したページでも、基本的な対処法を試すことでエラーを解消できる可能性があります。
どのウェブサイトにも共通する基本的な解決策
どのウェブサイトにも共通する基本的な解決策は、主に次の3つです。
- URLやコードに誤りがないか確認
- サーバー側のログを確認
- サーバーの構成ファイルを確認
まずはウェブサイトのURLやコードに間違いがないか確認しましょう。それでも解決しない場合はサーバー側のログを確認します。ここまでの手順でも解決されないときには、サーバー側の構成ファイルを確認しましょう。
URLやコードに誤りがないか確認
URLやコードに間違いがあると、サーバー側がクライアント側の要求に応答できないことがあります。正しいURL・コードに直すことで不具合が解消される可能性があるため、まずはここを確認してみましょう。
発見・修正した後は、再発を防ぐために状況を再現し「どこで問題が発生したのか」、その原因を解明しておきましょう。
サーバー側のログを確認
URLやコードに誤りが見られなかったときには、サーバー側のログを確認します。サーバー側のログには、訪問者がアクセスを要求したページや接続先のサーバーなどの履歴が残されています。また、サーバーのハードウェアやサーバーの状態などの詳細な情報もサーバー側のログにあります。
これらのログから不具合や異常がないか確認してみましょう。
サーバーの構成ファイルを確認
前述した2つの方法を試しても不具合が見つけられなかったときには、サーバーの構成ファイルを確認します。サーバーの構成ファイルには、サーバーに関するすべての情報が格納されているため、詳細に確認していく中でなぜクライアント側の要求をはねのけてしまうのか、不具合の原因が発見される可能性があります。
WordPressを使用したサイトの解決策
WordPressを用いてサイトを構築している場合は、次の方法を試してみましょう。
- WordPressのアップデートを元に戻す
- プラグインやテーマをアンインストールする
- 勝手にデータベースの変更がされていないか確認する
- アプリケーションのコードとスクリプトをデバッグする
WordPressのアップデート直後にエラーが起きた場合は、アップデート前に戻すことで解決できる可能性があります。そのほか、プラグインやテーマの不具合によるエラーも考えられます。
これらで解決しない場合は、データベースが変更されていないか確認しましょう。アプリケーションのコードとスクリプトのデバッグでエラーを解消する可能性もあります。
WordPressのアップデートを元に戻す
WordPressのアップデート後にエラーが出た場合、バージョンを戻すことでエラーが解消される可能性があります。なお、手動でアップデート前に戻すためには、アップデート前のサイトのバックアップファイルが必要です。
バックアップデータがあり、手動でダウングレードを実行する場合は、すべてのプラグインを停止して、サーバー内にある「wp-admin」と「wp-includes」ディレクトリを削除します。あとはバックアップ済みのファイルをサーバーにアップロードし、「wp-content」ディレクトリ以外のファイルを上書きします。
プラグインやテーマをアンインストールする
WordPressでウェブサイトを構築するために使用するプラグインやテーマは重宝するものですが、そのいずれかが更新されたことで不具合が発生し、WordPressの新しいバージョンに対応できずエラーが起きてしまうことがあります。アップデートを元に戻してもエラーが解決しない場合は、プラグインやテーマをアンインストールしましょう。
プラグインやテーマのアンインストールは、WordPressのダッシュボード上で行います。複数のプラグインのうち、どのプラグインがエラーの原因になっているのかを調べるには、手間ですが一つずつ確認するしかありません。一つずつプラグインを無効化してエラーが出ないか確認していけば、どのプラグインがエラーの原因となってるのかを解明できます。
勝手にデータベースの変更がされていないか確認する
WordPressにプラグインをインストールすると、まれにデータベースまで変更されてしまうことがあります。プラグインが問題で不具合を起きている場合、プラグインによって起こった変更を元に戻さない限りエラーが解消されないこともあります。
データベースが変更されているかどうかの確認は、データベースで直接行います。データベースを開いて、プラグインなどで変更されている部分がないか細かく見ていきます。変更点を見つけたら、元に戻す、または削除しましょう。
アプリケーションのコードとスクリプトをデバッグする
これらの方法でもエラーを解消できなかったときには、デバッグを行います。開発環境を用意して、ウェブサイトのコピーを作成し、デバッグを行います。デバッグではウェブサイトの詳細を確認し、問題があれば修正を行います。多くの時間がかかる方法ですが、エラーを確実に解消できます。
なお、WordPressには、デバッグモードがあります。FTPソフトなどで「wp-config.php」にアクセスし、「define( 'WP_DEBUG', false );」の表記を探しましょう。デバッグモードは、falseをtrueに変更することで利用できます。
それでも405エラーを解決できないときには
これらの方法を試しても405エラーを解決できないときには、複雑な問題が発生しているか、ウェブサイトの開発側では触れられない領域で問題が発生している可能性があります。一度レンタルサーバーやホスティングプロバイダーに問い合わせましょう。多くの場合、メールや電話で問い合わせが可能です。
- 405エラー(405 Method Not Allowed)は、許可されていないHTTPメソッドでアクセスを試みた場合に発せられるエラー
- 「アクセスをリクエストしたページが存在しない」場合に発せられる404エラーに対して、405エラーは「ページが存在しているにもかかわらず、アクセスを拒否されている状態」に発せられる
- 405エラーは原因を突き止めることが難しく、復旧には比較的時間がかかる傾向がある
- 405エラーの解決には「URLやコードに誤りがないか確認」「サーバー側のログを確認」「サーバーの構成ファイルを確認」の3つのステップを踏み原因を特定し対策する
- WordPressの場合はアップデートを元に戻す、あるいはプラグインやテーマのアンインストールなどで解決することもある