HTTP 406 Not Acceptableエラーを修正する方法? クライアント側とサーバー側の修正

公開: 2024-01-26

目次
HTTP 406 エラーとは何ですか?
エラー 406 を修正するにはどうすればよいですか?
クライアント側のソリューション
サーバーサイドのソリューション
406エラーを防ぐにはどうすればよいですか?
結論
よくある質問

HTTP 406 エラーとは何ですか?

406 エラー コードは、クライアントの要求がサーバーで受け入れられないことを示すクライアント側のエラーです。 これは、サーバーが要求ヘッダーで指定された許容値のリストと一致する応答を生成できないときにトリガーされます。

したがって、この特定の 406 許容できないエラーは、504 ゲートウェイ タイムアウトなどの 5xx サーバー エラーとも対照的です。

これは、インターネットサーフィン中にほとんど遭遇しない最もまれな HTTP エラーの 1 つですが、運悪く Web サイトでこのエラーが発生した場合、一般的に次のようなエラーが表示されます。

406 Not Acceptable Error
406 許容できないエラー

上の画像では、エラー 406 が確認され、「要求されたリソースの適切な表現がこのサーバー上に見つかりませんでした」という追加のエラー メッセージが表示されていることがわかります。 このエラーは Mod_Security によって生成されました。

これは人間、特に技術者ではない人にとってはあまり役に立ちませんし、かなり不可解でロボットのように聞こえます。 そこで、このエラー メッセージが正確に何を言おうとしているのかを理解しやすくしてみましょう。

クライアント、つまりブラウザまたはデバイスは、Web ページを表示しようとしましたが、次のような問題が発生した可能性があることを伝えようとしています。

1. サーバーはブラウザでサポートされていない間違ったファイルを送信しました。

2. サーバーが有効なセキュリティ要件を生成できないか、プロトコルに従っていない可能性があります。

HTTP エラー 406 について理解する

非常に簡単な言葉から始めましょう。このエラー 506 は、サーバーがクライアント (つまり Web ブラウザー) によって要求された形式で適切なデータを送信できないことを示しているだけです。

クライアント、つまり Web ブラウザには、「Accept」ヘッダーを使用して受け入れることができる特定の基準または形式があります。 ただし、サーバーがこれらの基準を満たすことができない場合は、HTTP ステータス コード エラー 406 で応答します。

ここで最も難しい部分が来ます。このエラーの正確な原因を突き止めるのは非常に困難な場合があります。問題はサーバーとクライアントの通信チェーンのどこからでも発生する可能性があるためです。
ただし、原因が何であれ、この HTTP 406 エラーを修正するために試せる方法をいくつか紹介します。


エラー 406 を修正するにはどうすればよいですか?

エラー 406 を修正するために使用できるトラブルシューティング方法をいくつか紹介します。

クライアント側のソリューション

1. 入力したURLが正しいか確認する

それは明白で非常に基本的なように思えますが、信じてください、これはエラー 406 を修正するために試すことができる最も簡単で迅速な方法です。

実際には、エラー 406 は見かけよりも多く発生する可能性がありますが、現時点では、間違った URL を入力し、その URL が無効である場合は、「406 受け入れられません」というエラー メッセージが表示される可能性があります。

この問題を解決するには、入力した URL を再チェックし、すべてが正しいかどうかを確認するだけです。 のような、

  • スペルミスがないか確認してください
  • 無効な特殊文字が入力されていないか確認してください
  • 他のページの URL を入力して、そのページだけで問題が発生しているかどうかを確認してください。

エラーが解決しない場合は、他の解決策を確認してください。

2. ネットワークとデバイスをリセットして構成する

エラー 406 はクライアント側の問題であるため、オンライン ゲームやメディア ストリーミング サービス (Netflix や音楽ストリーミング プラットフォーム Spotify など) などの特定のプラットフォームでもクライアントの要求を満たすことができず、このエラーが表示される場合があります。

現時点では、サーバー側の問題だと思われるかもしれませんが、問題はクライアント側で発生している可能性が高くなります。 それは、個人のコンピューター、インターネット接続、またはこれらのプラットフォームの起動に使用した任意のデバイスである可能性があります。

これは主に、サーバーによる非互換性またはサポートされていないヘッダーが原因であるため、Netflix、Amazon Prime、Hulu など、どのプラットフォームでもこのエラーが発生することが予想されます。

また、これらの各プラットフォームでの 406 エラーのトラブルシューティング手順をすべて説明することはできません。 ただし、プラットフォームごとに次の基本手順に従って、エラーが修正されるかどうかを確認することができます。

  • ルーターなどのネットワーク デバイスの電源をオフにするか電源プラグを抜き、しばらく待ってから (約 2 分) > 再度接続してデバイスの電源をオンにします。
  • 同様に、ゲーム システム、パソコン、OTT デバイスなどを再起動することもできます。
  • ストリーミング デバイスを WLAN やモバイル ネットワークなどの別のネットワークに接続してみて、エラーが継続するかどうかを確認してください。
  • ストリーミング メディア アプリの現在のバージョンを確認し、利用可能な場合は更新します。
  • 上記の方法がどれもうまくいかない場合は、各ストリーミング プラットフォームでオンラインで利用できるフォーラムやガイドを検索するのが最善の方法です。

3. 最近の WordPress アップデートをロールバックする

注: Web サイトで何かを変更しようとする前に、まず予防策として Web サイトを完全にバックアップする必要があります。 そのため、何か問題が発生した場合でも無傷で Web サイトに戻ることができます。

406 エラー コードが表示される直前に WordPress を最近更新した場合は、すぐに以前のバージョンにロールバックすることを検討してください。

参考までに、この専用の投稿「WordPress を再インストールするには?」をご覧ください。 従うべき 4 つの最良の方法」。

同様に、最近アップグレードした拡張機能やモジュールもサーバー側の問題を引き起こす可能性があるため、それらを以前のバージョンに戻すことも役立つ場合があります。

4. 最近追加した拡張機能、プラグイン、またはテーマをアンインストールします

使用しているコンテンツ管理システムに関係なく、拡張機能、プラグイン、またはテーマを最近追加した場合、その後エラー 406 が表示されます。 彼らが問題を引き起こしているかどうかを確認することをお勧めします。

これは、これらのプラグインまたはテーマがデータベースにアクセスし、サイト ファイルにコードを追加したり、データベース レコードを変更したりするなど、データベースに変更を加えることができるためです。 これらのアクションにより、HTTP エラー 406 が発生する可能性があります。

問題のあるプラグインまたはテーマを特定する最善の方法は、それらを 1 つずつ非アクティブにして、エラー 406 がまだ表示されるかどうかを確認することです。 エラーが消えた場合は、無効化されたプラグインまたはテーマが原因である可能性が高くなります。

Deactivate Plugin
プラグインを非アクティブ化する

5. データベース レコードの変更を探します。

上のセクションで述べたように、特定のプラグインとテーマには、データベース レコードを変更または変更する権限がある可能性があります。 したがって、WordPress ダッシュボードからそれらを削除またはアンインストールした後でも、一部のトレースがデータベースに残る可能性があります。

これらのトレースがエラー 406 を引き起こす原因となる可能性があります。

最善の方法は、Adminer または phpMyAdmin を使用してデータベースを開いてテーブルをチェックアウトすることです。

プラグインまたはテーマによって変更される可能性がある WordPress のテーブルとレコードを確認します。

Checking WordPress Database
データベースをチェックしています

情報 Web サイトが WPOven サーバーでホストされている場合は、データベース マネージャー ツールを介してデータベースに簡単にアクセスできます。


サーバーサイドのソリューション

WordPress などの CMS を使用していない場合、または上記の方法をすべて試しても HTTP エラー 406 が発生する場合。サーバー側で実行できる他のトラブルシューティング方法をいくつか示します。

6. サーバーログを確認する

サーバー側で何か問題が発生したかどうかを確認するための最良の方法の 1 つは、サーバー ログを確認することです。 使用する CMS、Web サイト プラットフォーム、Web アプリケーションに関係なく、それらはすべてサーバー側のログを利用できます。

これらのサーバー ログには、Web アプリケーションの実行に使用されるサーバーまたはハードウェアの健全性とステータスに関する重要な情報が含まれています。


読む: WordPress サイトの場合、WordPress エラー ログを設定して使用する方法?
WPOven ユーザーの場合は、 「アクセス ログとエラー ログを確認するにはどうすればよいですか?」を参照してください。


7. Webサーバーの構成を確認します。

406 Not Acceptable 」エラーを解決できない場合、次のステップは Web サーバーの構成ファイルを確認することです。 このエラーは通常、Web サーバーがユーザーの特定の URL へのアクセスを制限していることを示します。

したがって、リクエスト処理命令や意図しないリダイレクトがないか、Web サーバー構成を検査または確認する必要があります。

Web サーバーの構成を検査するには、最初のステップとして、Web サイトがどのサーバー ソフトウェアを使用しているかを確認します。 NGINX または Apache のいずれかになります。

Web サイトで Apache を使用している場合は、Web サイトのシステム ファイルのルート ディレクトリにある .htaccess ファイルを探してください。 ただし、Web サイトで NGINX Web サーバーを使用している場合は、代わりに NGINX.conf ファイルを探す必要があります。

また、「WordPress .htaccess ファイル: 作成および編集する方法?」に関する専門記事もご覧ください。

.htaccess ファイルを見つけたら、それをテキスト エディタで開き、406 フラグを使用しているディレクティブを検索します。

たとえば、次のブロック ディレクティブ (つまり、ディレクティブの名前付きセット) は、WPOven.com の仮想サーバーを構成し、上記と同様に、

Accept: application/JSON リクエスト ヘッダーが含まれていないhttps://wpoven.com./users/json は失敗し、406 応答コードが表示されます。

server {
listen 80;
listen 443 ssl;
server_name wpoven.com;
location /users/json {
if ($http_accept != application/json) {
return 406 https://wpoven.com/users/json$request_uri;
}
}
}

次に、nginx.conf ファイルを徹底的に調べて、406 個のフラグが含まれる疑わしい異常なディレクティブや行が存在するかどうかを確認する必要があります。 見つかった場合は、それを「コメント」としてマークし、サーバーを再起動してエラーが消えるかどうかを確認します。

8.WordPressのデバッグ

前述したように、多くの Web アプリケーションはエラー ログを提供し、それに伴うデバッグも提供します。

デバッグは、アプリケーションのコード内の小さなバグやエラーを見つけて削除するプロセスです。 WordPress デバッグの詳細については、「WordPress デバッグ: WP_DEBUG を有効にする方法?」に関する専用の投稿をご覧ください。

9. サーバーセキュリティルールを確認する

  • サーバーのセキュリティ ルールは、DDoS 攻撃などの悪意のあるアクティビティからサーバーと Web サイトを保護することを目的としています。
  • ただし、場合によっては、これらのルールが厳しすぎるため、正当なリクエストがブロックされ、406 エラー コードがトリガーされることがあります。
  • たとえば、特定の IP アドレスからの要求をブロックするようにセキュリティ ルールが構成されている場合、意図せずに正規のユーザーもブロックされる可能性があります。
  • このような状況を回避するには、サーバーのセキュリティ ルールを確認し、可能であれば、Web サイトの保護と機能に違反することなく有効なリクエストを許可するように少し調整することが重要です。

406エラーを防ぐにはどうすればよいですか?

Web サイトでの 406 エラーを防ぐには、次の「すべきこと」と「してはいけないこと」を実装することを検討してください。

  • セキュリティ ルールを確認します。
    • サーバーに実装されているセキュリティ ルールを確認して確認します。 堅牢ではあるが過度に厳密ではないように構成されていることを確認してください。
    • 可能であれば、セキュリティ ルールをカスタマイズして、必要かつ正当なリクエストを許可します。
  • プラグインとテーマを更新します。
    • プラグインとテーマを最新の状態に保ちます。 開発者は、バグに対処し、互換性を向上させるために、406 エラーにつながる競合の可能性を減らすためにアップデートをリリースすることがよくあります。
  • サーバーログを監視します:
    • 異常なアクティビティやエラー メッセージがないかサーバー ログを定期的にチェックしてください。 問題が 406 エラーに発展するのを防ぐために、問題にはすぐに対処してください。
  • テストの変更:
    • 新しいプラグインやテーマの追加など、重要な変更を実装する前に、ステージング環境でテストしてください。 これにより、潜在的な競合がライブサイトに影響を与える前に特定して解決できます。 また、非常に必要な場合を除き、WordPress コア ファイルを変更したり変更したりしないでください。
  • 信頼できるプラグインまたはテーマのみをインストールします。
    • 必要な場合にのみ、常に評判が良く信頼できるプラグイン、テーマ、または拡張機能をインストールするようにしてください。
  • データベースのクリーンアップ:
    • ジャンク ファイルや削除されたプラグインの痕跡を削除して、データベースを随時クリーンアップまたは最適化してください。
  • デバッグを定期的に実装します。
    • サーバーを定期的にデバッグすることを習慣にしてください。 これにより、サーバーが正常になり、訪問者にとって Web サイトのエクスペリエンスがよりスムーズになります。
  • ホスティングプロバイダーに問い合わせてください:
    • Web サイトがホストされている場合は、ホスティング プロバイダーに問い合わせてください。 サーバー側の問題を特定したり、サーバー設定を最適化して 406 エラーを回避したりできる場合があります。
  • コンテンツ配信ネットワーク (CDN) を使用します。
    • CDN を実装すると、Web サイトのコンテンツを効率的に配布し、406 エラーなどのサーバー関連のエラーの可能性を減らすことができます。
  • 定期的なバックアップ:
    • ウェブサイトを定期的にバックアップしてください。 エラーが発生した場合に備えて、最新のバックアップを作成しておくと、Web サイトをすぐに動作状態に復元できます。

結論

他の HTTP エラーと同様に、406 Not Acceptable エラーも修正できます。 ただし、最初に実行する必要があるのは、それを引き起こした根本的な原因を解明することです。

これは一般的な HTTP エラー コードではないため、適切に設定されていない場合でも時々発生する可能性があります。

この 406 エラーに関してご提案やご質問がございましたら、以下のコメント セクションでお知らせください。


よくある質問

エラー 406 を修正するにはどうすればよいですか?

次のトラブルシューティング方法に従って、エラー 406 を簡単に修正できます。
1. 入力したURLが正しいか確認する
2. ネットワークとデバイスをリセットして構成する
3. 最近の WordPress アップデートをロールバックする
4. 最近追加した拡張機能、プラグイン、またはテーマをアンインストールします
5. データベース レコードの変更を探します。
6. サーバーログを確認する
7. Webサーバーの構成を確認します。
8.WordPressのデバッグ
9. サーバーセキュリティルールを確認する

406ってどういう意味ですか?

エラー 406 コードは、クライアントのリクエストがサーバーに受け入れられないことを意味します。 これは、サーバーが要求ヘッダーで指定された許容値のリストと一致する応答を生成できないときにトリガーされます。

HTTP 404 と 406 の違いは何ですか?

HTTP 404 Not Foundサーバーが要求されたリソースを見つけることができなかったことを示します。多くの場合、Web ページが見つからない、または URL が正しくないことが原因です。 一方、 HTTP 406 Not Acceptable は、コンテンツ タイプや言語など、リクエスト ヘッダーで指定された基準に一致する応答をサーバーが生成できないことを示します。 これは、サーバーがクライアントの指定された要件を満たせない場合に発生します。