WordPressを運用していると、稀に 414 Error (Request-URI Too Long) というエラーに遭遇することがあります。 これは「URLが長すぎてサーバーが処理を拒否した」というHTTPエラーです。
WordPress特有の不具合というよりは、「WordPressの挙動」と「サーバー設定」の組み合わせで発生します。
まず結論:原因の9割はこれ
GETパラメータが異常に長くなっているのが原因です。
URLの末尾(? 以降)に、検索条件やフィルタ情報などが大量に付与され、サーバーの許容長を超えてしまっています。
よくある4つの原因
1. 管理画面URLにパラメータが増殖している
特に管理画面(wp-admin)で起きやすい現象です。
- wp-admin/edit.php?post_type=…&orderby=…&meta_key=…
フィルタ、検索、ソート機能を何度も繰り返しているうちに、プラグインが状態をURLに全て載せようとして、URLが肥大化してしまうケースです。
2. プラグインの設計ミス
状態保持を Cookie や POST 通信で行わず、すべて GET パラメータに積み上げる設計のプラグインで発生します。
- 検索・フィルタ系プラグイン
- アクセス解析・ABテスト系
- 管理画面のカスタマイズ系
3. リダイレクトループによる肥大化
ログイン失敗や権限チェック周りで、?redirect_to=… が何重にもネストされてしまうケースです。 リダイレクトされるたびにURLが長くなり、最終的に414エラーになります。
4. サーバー側の制限が厳しい
Apache や Nginx、あるいはその手前にある WAF(Cloudflare, Sucuri, Akamaiなど)の設定で、URLの最大長が短めに設定されている場合、少し長いだけのURLでも弾かれることがあります。
今すぐできる対処法(優先順)
焦らず、上から順に試してみてください。
- URLを一度「素」に戻す(最重要) アドレスバーの ? 以降をすべて削除して、Enterキーを押してください。 これで正常に表示されるなら、原因は100%パラメータの肥大化です。
- 管理画面キャッシュ・Cookie削除 管理画面用のCookieが悪さをしているケースがあります。 シークレットモードでアクセスして再現するか確認してください。
- 最近触ったプラグインを止める 特に「管理画面拡張」「フィルタ強化」「検索改善」系のプラグインを疑ってください。 管理画面に入れない場合は、FTP等で wp-content/plugins/ の該当フォルダ名を一時的に変更して無効化します。
サーバー設定での緩和(上級者向け)
どうしてもURLが長くなる正当な理由がある場合、サーバー設定で上限を緩和することも可能です。 ※ これは対症療法であり、根本解決ではありません。
Apacheの場合 .htaccess 等で以下を設定(root権限が必要な場合があります)
LimitRequestLine 16384
LimitRequestFieldSize 16384
Nginxの場合 設定ファイル(nginx.conf 等)で以下を設定
large_client_header_buffers 4 16k;
基本的には、URLを短く保つ運用や、行儀の悪いプラグインを見直すことを推奨します。