HTTP 405 Method Not Allowed:意味と解決方法
結論
HTTP 405 Method Not Allowed は、サーバーが `GET`、`POST`、`PUT`、`DELETE` などの HTTP メソッドを理解したものの、そのメソッドがリクエストされたリソースでサポートされていないことを意味します。URL またはホストには引き続きアクセスできる場合があり、問題は通常、リクエストメソッド、ルート、アプリケーション、サーバー、プロキシ、CDN ルールのいずれかに限定されます。正確なメソッドと URL を確認し、レスポンスヘッダー(特に `Allow` ヘッダー)を調べ、ログを使ってレスポンスを返したコンポーネントを特定してください。
要点
- HTTP 405 は特定のリソースに対して使用されたメソッドに関するエラーであり、Web サイト全体が利用できないことを必ずしも意味しません。
- 設定を変更する前に、正確な URL、HTTP メソッド、ステータス、レスポンスヘッダーを確認してください。
Allowレスポンスヘッダーから、そのリソースが受け付けるメソッドを特定できる場合があります。ただし、ヘッダーがないことだけでは原因を特定できません。- レスポンスは、オリジンのアプリケーションではなく、アプリケーション、Web サーバー、リバースプロキシ、CDN、WAF のいずれかから返される場合があります。
- 対応するログと最小限の再現テストを使い、意図的なルールなのか、ルーティングまたはデプロイのミスなのかを切り分けてください。
- 権限のある最小限の変更を行い、関係のないセキュリティ制御を弱めずに同じリクエストを再テストしてください。
Site Administrator
最終レビュー: September 25, 2026
このエラーの意味と見分け方
- ブラウザ、API クライアント、監視ツール、チェッカーが
405 Method Not Allowedを受け取る。 - ある HTTP メソッドは失敗する一方、同じルートに対する別のメソッドは動作する場合がある。
- 問題はサイト全体ではなく、1 つの URL、ルートパターン、クライアント、デプロイに限定される場合がある。
- レスポンスに、許可されているメソッドを列挙した
Allowヘッダーが含まれる場合がある。 - その他のヘッダーから、リダイレクト、キャッシュ、認証、プロキシ、CDN、サーバーの状況が分かる場合がある。
- HTTP レスポンスを受信できているため、DNS 名前解決と TLS ネゴシエーションはすでに成功している可能性があります。ただし、これはアプリケーションやルートが正しく設定されていることを意味しません。
可能性の高い順の主な原因
主な原因
- そのメソッドがルートでサポートされていない。 エンドポイントが
GETは受け付けてもPOSTを拒否したり、POSTは受け付けてもPUTやPATCHなどの更新用メソッドを拒否したりする場合があります。 - ルーティングまたは Web サーバーのルールがメソッドを拒否している。 ルート、バーチャルホスト、サーバーポリシーによって、リクエストが意図したハンドラーに渡されない場合があります。
- リバースプロキシ、CDN、WAF が先にレスポンスを返している。 中間層がメソッド制限を適用したり、オリジンとは異なる方法でリクエストをルーティングしたりする場合があります。
- リクエストがアプリケーションの契約に一致していない。 パス、末尾のスラッシュ、コンテンツタイプ、ホスト、認証状態、その他のリクエスト詳細によって、別のルートや検証ルールが選択される場合があります。
- 最近のデプロイまたは設定変更によって不整合が生じた。 アプリケーションのルート、プロキシルール、許可メソッド、キャッシュ動作の間に不整合が生じている可能性があります。
- 意図的なポリシーまたはエンドポイント設計。 リソースによっては、安全でない、サポート対象外、または文書化されたインターフェースの範囲外のメソッドを意図的に拒否します。
ステータスコードだけでは、どのレイヤーまたはルールがレスポンスの原因になったかを特定できません。システムを変更する前に、メソッド、ヘッダー、ログ、最近の変更を確認してください。
修正方法
訪問者または API 利用者の場合
- 正確な URL と、クライアントが意図したメソッドを送信しているかを確認します。ブラウザのアドレスバーからのリクエストは通常
GETを使用しますが、API クライアントはPOST、PUT、PATCH、DELETEなどのメソッドを使用する場合があります。 - レスポンスヘッダーで
Allowヘッダー、およびリダイレクト、認証、キャッシュ、プロキシに関する情報を確認します。サイトまたは API のドキュメントでサポートされていると明記されていない限り、別のメソッドを有効な回避策として扱わないでください。 - エンドポイントにアカウントが必要な場合は、通常の手順でサインインして再試行します。サポートへの問い合わせに認証情報を含めないでください。
- サービスがレート制限、タイムアウト、過負荷の兆候も示している場合は、繰り返し再試行しないでください。
- 問題が解決しない場合は、URL、メソッド、タイムスタンプ、ステータスコード、関連するサニタイズ済みヘッダーをサイト管理者に送信します。パスワード、Cookie、認証トークン、API シークレットは共有しないでください。
サイトを所有または管理している場合
- 最小限の再現条件を記録します。 正確なメソッド、URL、ホスト、リクエストパス、ステータス、関連するレスポンスヘッダーを記録します。リクエストボディに秘密情報や個人データが含まれていない場合に限り、保存してください。
- レスポンスが意図したものか確認します。 リクエストをルートまたは API の契約と比較します。そのリソースが対象のメソッドをサポートする設計か、また
Allowヘッダーが受け付けるメソッドを示しているかを確認します。 - レスポンスを返したレイヤーを特定します。 レスポンスヘッダー、リクエスト ID、タイムスタンプを使い、レスポンスがアプリケーション、Web サーバー、リバースプロキシ、CDN、WAF のどこから返されたかを特定します。プロキシが生成したレスポンスは、オリジンに到達していない可能性があります。
- 該当するログを調べます。 特定したレイヤーと、利用できる場合は上流レイヤーで、同じタイムスタンプ、パス、メソッド、リクエスト ID を検索します。ルートの不一致、メソッドフィルター、上流リクエストの拒否、最近のポリシー変更を確認します。
- 最近の変更を比較します。 デプロイ、ルート定義、Web サーバーのルール、プロキシまたは CDN の動作、認証設定、WAF ポリシーを確認します。同じルートで失敗するメソッドと、既知のサポート対象メソッドを比較します。
- 権限のある最小限の修正を適用します。 メソッドをサポートすべきルートまたはルールだけを更新します。エラーを消すために、認証、WAF 保護、メソッド制限を広範囲に無効化しないでください。
- 安全に再テストします。 可能な場合は非本番環境で同じリクエストを繰り返し、その後、承認された変更手順に従って影響を受けた本番ルートをテストします。サポート対象外のメソッドが引き続き拒否され、関連ルートが意図したステータスコードを返すことを確認します。
- キャッシュと中間層を確認します。 クライアントや場所によって動作が異なる場合は、プロキシまたは CDN がレスポンスをキャッシュしていないか、別のルールを適用していないかを確認します。キャッシュの動作をパージまたは変更する場合は、サービスの通常の運用手順に従ってください。
予防と修正確認
- 重要な Web ルートと API エンドポイントでサポートするメソッドを定義し、文書化します。
- アプリケーション、サーバー、プロキシ、CDN、WAF を変更した後、重要なルートで代表的なメソッドをテストします。
- すべての 4xx レスポンスを 1 つのグループとして扱わず、ルートとメソッドごとのステータスコード率を監視します。
- ルーティング、メソッド制限、認証、プロキシ設定をバージョン管理します。
- 中間層とオリジンのレイヤー間で障害を照合できるよう、リクエスト ID とログを十分な期間保持します。
- 意図的な 405 レスポンスを文書化し、サポートチームと監視チームが想定された動作とリグレッションを区別できるようにします。
- 広範囲にメソッドを許可することは避け、各リソースとアプリケーションの契約に必要なメソッドだけを許可します。
外部の助けが必要なタイミング
重要な公開ルートで予期せず 405 が発生した場合、多数のユーザーに影響している場合、デプロイ後に発生した場合、またはクライアントや場所によって結果が異なる場合は、サイト管理者、ホスティングプロバイダー、プラットフォームチームにエスカレーションしてください。セキュリティとルーティングへの影響を検証できない場合は、認証、WAF、CDN、リバースプロキシ、サーバーのルールを変更する前に専門家の確認を受けてください。サニタイズ済みのメソッド、パス、タイムスタンプ、レスポンスヘッダー、リクエスト ID、関連ログを提供し、パスワード、Cookie、認証トークン、API シークレットは決して含めないでください。
よくある質問
HTTP 405 は Web サイト全体が停止していることを意味しますか?
いいえ。HTTP 405 は、1 つのリソースに対する 1 つのリクエストを示します。他のページ、ルート、メソッドは通常どおり動作し続ける場合があります。
HTTP 405 と HTTP 404 の違いは何ですか?
404 は、該当するエンドポイントでリクエストされたリソースが見つからなかったことを示します。405 は、サーバーがメソッドを認識したものの、特定されたリソースに対してそのメソッドを許可していないことを示します。結果が予期しない場合は、ルーティングと中間層の動作も確認してください。
405 レスポンスの Allow ヘッダーは何を意味しますか?
存在する場合、Allow はそのリソースがサポートするメソッド(GET や POST など)を列挙します。リクエストの診断に役立つ情報ですが、プロキシやその他の中間層がレスポンスを生成している可能性もあるため、レスポンスヘッダーとログを総合して判断してください。
HTTP 405 が表示されても DNS と TLS は動作していますか?
はい。HTTP レスポンスを受信できている場合、通常は関連する接続手順の後にリクエストが HTTP 対応エンドポイントへ到達したことを意味します。DNS と TLS は別の確認項目であるため、405 だけでは意図したアプリケーションルートが正常であるとは確認できません。
リクエストを POST から GET に変更すべきですか?
エンドポイントのドキュメントまたは所有者が、その操作でリソースが GET をサポートしていると示している場合に限ります。無条件にメソッドを変更すると、誤った結果になったり、安全でないリクエストパターンを公開したりする可能性があります。
サイト管理者は最初に何を確認すべきですか?
まず、正確なメソッド、URL、レスポンスヘッダー、タイムスタンプを確認します。次に、どのコンポーネントがレスポンスを生成したかを特定し、ルーティングやセキュリティ設定を変更する前に、そのコンポーネントに対応するログを調べます。
関連ドキュメント
- MDN Web Docs:405 Method Not Allowed — ステータスコードと HTTP セマンティクスの概要。
- RFC 9110:HTTP Semantics — HTTP メソッド、レスポンス、
Allowヘッダーに関する標準仕様。