現在、当サイトのトップページにアクセスすると、以下のようなエラーが表示されます。
Bad Request
Your browser sent a request that this server could not understand.
The number of request header fields exceeds this server’s limit.
この現象は、当サイトのみのものなので、Simplicityテーマ自体が原因のエラーではないと思います。Wordpress公式テーマに変更しても同様にエラーが出るので。
以下では、このエラーについて現時点で分かっていることについてまとめたいと思います。
これまでにわかっていること
Bad Requestエラーについてこれまでわかっている事はこちら。
- トップページのみでBad Requestエラーが出る
- 使用中のサーバーはエックスサーバー
- サーバーソフトはnginx
- エラーが出る前(数日間)、サイトの設定を変更することは何もしていない
- トップページでスーパーリロード(ctrl+F5)をするとページ表示される
- スーパーリロードしても、同じURLを表示させるとエラーが出る
- Bad Requestの対処法でググると出てくるCookieの削除でも改善されず
- 単にキャッシュを削除してもダメでスーパーリロード(ctrl+F5)しないとページが表示されない(表示されても一時的だけど)
- WindowsとMac環境でBad Requestエラーを確認
- スマホでもエラーが出る模様
- Chrome、Firefox、IE、Safariブラウザでエラーを確認
- 一応、.htaccessは、Wordpress用の記述以外削除して試してみたけど改善されず
- 現在ページキャッシュプラグイン(WP Fastest Cache)は使用していない
- プラグインを全て停止しても改善されない(bbPressはデータに何かあったら怖いので停止しませんでした;)
- PHPのバージョンを7.0から7.1、5.6に変更してみてもエラーに変化なし
- テーマを公式のTwenty Seventeenに切り替えてもエラーが出る
エックスサーバーの、エラーログをみてみると、以下のようなエラーが出ているようです。
[Sun Oct 15 19:11:44.469826 2017] [fcgid:warn] [pid 185651] (104)Connection reset by peer: [client xxx.xxx.xxx.xxx:48276] mod_fcgid: ap_pass_brigade failed in handle_request_ipc function
上記エラーについて検索してみたところ、以下の記事は見つかりました。
ただ、レンタルサーバーで編集できる部分ではありませんでした。
現在分かっていることは以上です。
一時的にトップページを表示する方法
現在一時的に、Bad Requestが出ているページを表示させる方法を紹介します。
Windowsの場合は、スーパーリロード(Ctrl+F5)を行ってください。
Bad Request を受け取ったページでキャッシュを削除した後に Ctrl + F5 でページをリロードしてみてください。(Windows)
— Taku (@jt_taku) 2017年10月15日
Macの場合は、Command+Rでスーパーリロードができるようです。
いえいえー。かうたっくさんのおっしゃるようにChromeは、Command+Rのようなのですが(今調べました…)、ChromeでCommand+Shift+Rで入れました。
— Luu (@luu_chan7) 2017年10月15日
今のところ原因不明
とりあえず、今のところは原因不明です。nginxサーバーはこれまで使ったことがないもので、解決方法もわかっていません。
現在、この現象についてエックスサーバーに問い合わせ中なので、しばらくお待ちください。
もし、何か原因にピンと来る方がおられましたら、フォーラム・メール・コメントもしくは、Twitterにて、ご連絡いただければ幸いです。
追記:原因はサーバー側の不具合だった模様
昨日、以下のように問い合わせた返信をいただきました。
2017年10月15日午前中ぐらいから、http://wp-simplicity.com/、もしくはhttps://wp-simplicity.com/のトップページのみにおいて、以下のようなエラーが表示されるようになりました。
—————————————————
Bad Request
Your browser sent a request that this server could not understand.
The number of request header fields exceeds this server’s limit.
—————————————————
ブラウザでスーパーリロード(ctrl+F5)で読み込めば、一旦正常表示されますが、同じURLを開くとまたBad Requestと表示されます。
サーバーパネルから、エラーログを見ると、以下のように出力されていました。
—————————————————
[Sun Oct 15 19:11:44.469826 2017] [fcgid:warn] [pid 185651] (104)Connection reset by peer: [client xxx.xxx.xxx.xxx:48276] mod_fcgid: ap_pass_brigade failed in handle_request_ipc function
—————————————————
この現象は、どういったことが原因と考えられるでしょうか?
もし解決方法がありましたら、ご教授いただけると幸いです。
これに対する、エックスサーバーサポートからの返信がこちら(一部抜粋)。
お問い合わせくださいまして、誠にありがとうございます。
当サポートで確認いたしましたところ、
お伺いいたしました手順でアクセスした際に、
ご利用サーバーにおける不具合により、
正常にコンテンツを表示することができない不具合が発生しておりました。当サポートにて設定を見直し、正常にコンテンツが表示されるよう
暫定での調整を実施いたしました。ご迷惑をおかけいたしましたこと、誠に申し訳ございませんでした。
引き続き、本事象が再発しないようにする調整を行い、
再発防止に努めてまいります。
どうやら、サーバー側の不具合だったようです。僕も、テーマ側の不具合ではなかったようで安心しました。
エックスサーバーは、本当に丁寧に朝早くから対応していただけるので、ありがたいです。エックスサーバーのことだから、再発防止にもしっかり応えてくれると思います。
追記:お詫びとして1ヶ月の無料期間をいただきました
その後、エックスサーバーからメールが来て、1ヶ月分の無料期間をいただきました。
まず、10月14日から10月16日までの間で
エラーにより、アクセスがしづらい状況となっていたことに
深くお詫びを申し上げます。すでに改善のための修正は完了しておりますが
ご迷惑をお掛けいたしましたことのお詫びといたしまして
ご利用のサーバーアカウント『XXXXXX』の
ご利用期限日の無償延長(1ヶ月)を実施いたしております。
先日程度のエラーでは、何もしてくれないサーバもあったりするので、こういった対応をしてくれるサーバーはやはり良サーバーだと思います。
コメント
2週間ほど前にWordpressを更新したところキャッシュ系の問題が起きました。他のテーマの別サイトでは起きないけれど,Simplicityを使っていたサイトで画像の一部が表示されないという謎現象です。キャッシュ系はほとんど入れていなかったのですが,それらプラグインを排除しても直らず,もしや…と思ってmod_pagespeedを解除したところ直りました。bad requestなので症状違うような気がしますが,可能性の問題としてコメントしておきます。
ありがとうございます。
mod_pagespeedは、ここ数年使用していないので、おそらく原因の可能性は低いような気がします。ただ、いろいろサーバーの設定も試してみようと思います。
他社サーバからXサーバへおととい引越し。
昨日からエラーが大量発生していたので
そのうちの代表的な4つのエラーコードについてXサーバへ問い合わせました。
その中の1つがわいひらさんと完全一致でした(笑
私向かいには
という回答をいただきました。
実を言いますと、私も自身のエラーコードと鋭意格闘中です。
サイトは正常表示されています。
こちらはサブディレクトリ構造で複数のWP運用していますが、
いづれも正常表示されているので、トップ画面NGとは違うかもです。
ですが、エラーコードはほっといても百害あって一理なしなので
いずれにせよ解決しなければならない問題ですね。。。
ありがとうございます!
結局今回の原因は、サーバーが原因だったようです。
で、今日のエラーログを見てみたところ、相変わらず同様のエラーを吐き出しているようです;
今回のBad Requestエラーと、エラーログに出ているエラーは、関係ないのかもしれません。
はじめまして。simplicityを利用させていただいております。
いつもありがとうございます^^
このエラー自分も見た事なく、解決方法もわからなかったのですが調べたところまで共有したいと思います。
https://stackoverflow.com/questions/10309751/bad-request-your-browser-sent-a-request-that-this-server-could-not-understand
”原因
これは通常、Cookieが非常に大きいために発生します。そのため、要求ヘッダーフィールドがWeb Serverの制限を超えました。
”問題の解決
サーバー側の場合:httpd.confのLimitRequestFieldSizeディレクティブの値を増やしてください:LimitRequestFieldSize 12288または16384 LimitRequestFieldSizeを設定する方法については、ApacheでLimitRequestFieldSizeの値を増やしてください”
Cookieを使用するプラグインが何か影響しているのかもしれません。あとは何かしらの事情でXサーバ側がLimitRequestFieldSizeを下げている。スーパーリロードでエラーが消えるのはブラウザ側の機能でCookieをよしなにやってくれているのかもしれません。
結局1つずつCookieを使用しているものを外して確認するというぐらいしかわかりませんでした^^;興味深いです。
今後もよろしくお願いします!
シークレットウィンドウでも同じ現象が出ているのでCookieは関係なかったですね・・^^;
はじめまして。
ありがとうございます。
サーバに問い合わせたところ、結局、エックスサーバー側の設定の不備だったようです。
詳細については詳しく聞きませんでしたが、そういったことが原因だったのかもしれません。
とりあえず、問題が解決して安心しました^^;