WordPressは安定したコードベースを持つため、それほど頻繁にエラーが起こるわけではありません。しかも、何か問題が発生した場合はその内容が明確に示されます。例えば、「414 Request-URI Too Large」のエラーも、メッセージから何が問題なのかが正確に分かります。そこから問題の解決方法が導けるでしょう。
他のWordPressのエラーと同様に、解決には特定の手順があります。簡単に言うと、いくつか設定を調整して、長いURLを使用できるようにする必要があります。それさえ済めばエラーは消えます。
今回は、「414 Request-URI Too Large」エラーの解決方法を解説します。問題を解決するために必要なツールやスキルの他、問題解決に取り組む前の「事前準備」もご紹介します。
「414 Request-URI Too Large」エラーを解決する方法の動画も是非ご覧下さい。
「414 Request-URI Too Large」エラーとは何か?なぜ起こるのか?
「414 Request-URL Too Large」エラーは、設定に起因する問題です。400番台エラーの一種です。これは多くの場合、ブラウザとサーバーのどこかに重大な問題があることを意味するので、非常に厄介です。
今回のテーマである414エラーでは、「URLが長すぎてサーバーが処理できない」ことで、例外が投げられます。これは、Urchin Tracking Module(UTM)コードを使用してコンバージョンを追跡している場合、問題となる可能性があります。設定したパラメータによってはリンクが長くなることがあり、サイトで設定した最大値に達した場合、エラーが表示されます。
WordPressの他のエラーと同様に、414を引き起こす原因は他にもたくさんあります。原因は、主に3つに分類することができます。
- 長すぎるクエリ情報を持つPOSTリクエストをGETリクエストに変換した。これはコーディングの段階で起こる、開発者特有の問題です。
- リダイレクトループ。以前の記事で、リダイレクトに関するベストプラクティスをご紹介しました。リダイレクトループが発生すると、URLが長くなりすぎてエラーが表示されます。
- サーバーが攻撃を受けている可能性があり、その場合414エラーよりも深刻な問題が発生していると思われます。
次に説明に進む前に、URIとURLは事実上同じであることをお伝えしておきます。両者には明確な違いがあるものの、ここでは分かりやすいように「URL」という言葉で統一します。
「414 Request-URI Too Large」エラーの解決には何が必要か
「413 Request Entity Too Large」エラーが表示されたことがある、という方は、414エラーとの類似に気づくでしょう。公式のエラーコードも連続しており、説明もほぼ同じで、名前からもその類似性がうかがえます。
そのため、414の解決に必要なツールやスキルは、413の場合と同じです。
- サーバーへの管理者としてのアクセス権限
- 数あるセキュアファイル転送プロトコル(SFTP)ソフトのいずれか
- SFTPを使用しサーバーを操作できるスキル
- 復元が必要になった場合に備えた適切かつ最新のバックアップ
- テキストエディタ(不要な場合もあり)
Kinstaのお客様の場合、SFTP認証情報やサーバーへアクセスするための便利な機能はMyKinstaからご利用頂けます。
なお、今回SFTPから接続するのはその名が示すとおり、より安全だからです。
「414 Request-URI Too Large」エラーの解決に取りかかる前にやるべきこと
サーバーを色々といじる前に、まずいくつか「事前確認」をした方が良い場合もあります。設定ファイルを編集しなくても、簡単に解決できる場合もあるのです。
しかも、これらのチェックはどのみち行う必要があるので、今のうちに済ませておくと、いずれ役に立つと思います。
まず、WordPressのプラグインはその機能の一環として、長いURLを生成することがあります。特に多くの機能が搭載された本格的なオールインワンのセキュリティプラグインが原因となっている可能性が高いです。
プラグインが原因かどうかは、一目では分かりませんが、プラグインの設定にURLの長さを制限する専用の機能がないかどうか確認してみることをおすすめします。もしあれば、これを有効にするだけで414エラーをあっという間に解決できるかもしれません。
通常、エラー解決において、以下の点も要チェックです。
- サーバーのログにエラーに関する記述や、原因の特定に役立つエントリがないかどうか確認する。
- ブラウザの開発者ツール(特にConsole)で、エラーの原因が分かる場合も。
- サイトの所有者または開発者(ご自身でない場合)に連絡し、エラーを知らせる。修正してくれるかもしれませんし、アドバイスをくれるかもしれません。
もちろん、プラグインに問題があることが判明した場合は、サイトとプラグイン開発者の両方に連絡すべきです。とは言え、問い合わせや表層的な確認をすべてやり尽くしたのであれば、次に進みましょう。
「414 Request-URI Too Large」エラーを解決する方法(3つの手順)
必要なものが揃ったら、計画的に対処していきましょう。「414 Request-URI Too Large」エラーはサーバーの設定ファイルを変更することで対処できます。ここで必要な手順は3つあります。
まずはサーバーへアクセスし、その種類を調べるところから始めましょう。
1. サーバーにログインしサーバーの種類を調べる
作業にとりかかる前にサーバーにアクセスしなければなりません。ここでは、SFTPのスキルが必要となります。
以前、SFTPを介してサイトにアクセスする方法については解説しました。サイトにアクセスしたら、サーバーの種類を特定する必要があります。主にApacheかNginxの2つがあります。
どのサーバーの種類を使用しているか、既にご存じの方は、このまま次のステップに進んでください。
見分け方にお困りの場合は、.htaccessファァイルを探してみてください。これはサーバーのルートにあります。このファイルがあれば、Apacheサーバーを利用していることが分かります。Nginxの場合、別の設定ファイルが使用されます。
とはいえ、Apacheサーバーでも、まだ.htaccessファイルが存在しないという可能性もあります。その場合、他にも2つの見分け方があります。
- ドメインツールWhoisを利用して、ドメイン検索を行う。確実な方法ではありませんが、使用しているサーバーの種類が分かるかもしれません。
- レンタルサーバーに問い合わせ、使用しているサーバーの種類を確認する。レンタルサーバーは、当然利用しているサーバーの種類を知っているはずです。KinstaではNginxを利用していますが、プロバイダーによってはApacheまたはその組み合わせを採用していることもあります。サイトのバックエンドをいじる前に、サポートサービスを利用してレンタルサーバーに確認しておいた方がいいと思います。
使用しているサーバーの種類が分かったら、次は設定ファイルを探します。
2. サーバー設定ファイルを探し、テキストエディタで開く
前述の通り、Apacheサーバーでは基本的なサーバーの設定に.htaccessファイルを使用しており、そのファイルはルートディレクトリに位置しています。しかし、これ自体は、「414 Request-URI Too Large」エラーを修正するために必要なファイルではありません。
エラーの解決には、より詳細な設定を調整する必要があります。設定内容は、サイトのルートフォルダではなく、サーバーのルートディレクトリにあります。
SFTPを介してサイトにログインすると、通常、すべてのサイトのファイルとその他いくつかのファイルを内包したディレクトリにたどり着きます。多くの場合、階層を遡っていくと、サーバーのルートディレクトリが見つかります。
そこから複数のディレクトリへ移動できます。その内の一つがetcフォルダです。
設定ファイルのパスは次のとおりです /etc/apache2/apache2.conf.
Nginxサーバーでも手順はほとんど同じです。WordPressサイトのファイルアップロードサイズ上限を引き上げる方法という記事の中でその手順の一部をご紹介しています。設定ファイルのパスは/etc/nginx/nginx.confです。
ファイルを見つけたら、お好きなテキストエディタで開きましょう。これで編集の準備は整いました。
3. 設定ファイルを編集し長いURLを許可する
ApacheとNginxの設定ファイルが異なるのと同じように、調整すべき設定も異なります。しかし、どのサーバーを利用している場合でも、エディターで開く必要があります。おすすめなのはファイルをコンピュータにダウンロードして作業し、それをサーバーにアップロードするという方法です。
Apacheの設定ファイルの場合、LimitRequestLineの設定を探すか、なければファイルの一番下に追加しましょう。
値は少なくとも128000以上で設定しましょう。これより大きい値に設定したい場合は、2の倍数にしてください(つまり、一つ上の値は256000になります)。
Nginxの場合は、large_client_header_buffersの設定を探します。ここでは、数とサイズに関する2つの値が示されています。例えば、large_client_header_buffers 4 8Kとなっていたとします。今回変更しなければならないのはサイズだけです。8Kから128K程度でいいかと思いますが、場合によってはさらに増やす必要があるかもしれません(これも2の倍数で設定します)。
編集が完了したら、変更内容を保存し、設定ファイルを再びサーバーにアップロードします。サイトをもう一度確認すると、「414 Request-URI Too Large」エラーは解消しているはずです。
まとめ
WordPressのエラーは多くの場合、似たような方法で解決することができます。しかし、通常は最初にエラーを診断する必要があります。「414 Request-URI Too Large」エラーの場合、何が問題かは明らかです。サーバーに渡されたURLが大きすぎるのです。
解決するには、ApacheまたはNginxのサーバー設定を変更する必要があります。この作業はそれほど時間がかからず、完了すればすぐにエラーを解消できるはずです。他のレンタルサーバーは分かりませんが、Kinstaの場合、「414 Request-URI Too Large」エラーの解決にお困りでしたら、サポートスタッフが年中無休で対応いたします。助けが必要な時はいつでもお問い合わせ下さい。サイトを元に戻すお手伝いをいたします。