エラー対策

WordPressで「Sorry, your request cannot be accepted.」が発生した。

mistake

先日Wordpress(バージョン5.0.2)のダッシュボードからいくつかのプラグインを更新しました。
しかし、その直後から記事の執筆ページやプラグインの設定ページへ移動しようとすると
「Sorry, your request cannot be accepted.」
と表示されるようになってしまいました。

何とか対応することはできたのですが、このままブログが更新できないと困る!!という方も多いのではないでしょうか?

以下の現象に当てはまる方は私と同じ手順で問題が解決できるかもしれません。

  • WordPressの管理画面やプラグインの設定ページにアクセスしようとすると「Sorry, your request cannot be accepted.」と表示される
  • プラグインにIP Geo Blockを導入している

原因は「IP Geo Block」だった

スパムブロック用に導入していたこちらのプラグインが原因でした。

  • IP Geo Block(この時点でのバージョンは3.0.17.3でした)

こちらのプラグインは、IP制限を行って怪しい人がブログにアクセスしないようにしてくれる優れものです。

簡単にいうと、ブログを見に来た人がどこの国や地域からアクセスしようとしているのかを判別し、ブログの管理人が許可した国や地域以外からのアクセスを禁止してくれるのです。

これによって、よくわからない国からの怪しいアクセスやコメント投稿を防ぐことができます。

しかし、今回はこちらのIP制限にブログの管理者も引っかかってしまっていたようです。

公式のFAQでも話題になっていました。(ページは英語です)
Why “Sorry, your request cannot be accepted” ? | IP Geo Block

対応策

こちらの問題への対処法ですが、IP Geo Blockを有効のままにするか、無効にするかどうかで分かれます。

①IP Geo Blockを無効化する

WordPressの管理画面上でプラグインページを開くことができる場合は、そこからプラグインを停止することで対応できます。

管理画面にログインできない状態の方は、直接ファイルを編集する必要があります。
ファイルを編集する方法は、こちらのサイト様のページを参照ください。
・WordPressで「Sorry, your request cannot be accepted.」と出てログインできない | 白猫日和

②IP Geo Blockを有効のまま対応する

この場合は、管理者のアクセスを許可するよう、IP Geo Blockに教えてあげなければなりません。

以下がその手順になります。

  1. 「Sorry, your request cannot be accepted.」と表示される場合のURLを確認する。末尾にaction=やpage=となっているはずなので、その「~~」の部分をメモしておく。
  2. FTPツールや契約しているサーバーの管理画面を使用して、/public_html/wp-content/ip-geo-api/ にdrop-in.phpが存在するか確認する
  3. drop-in.phpがある場合は次へ。ない場合はdrop-in-sample.phpをコピーするなどしてdrop-in.phpを同じ場所に作成する。
  4. drop-in.phpの最後の行に以下のコードを追加する。
    function my_bypass_admins( $queries ) {
    $whitelist = array(
    ‘do-my-action’,
    ‘my-plugin-page’,
    );
    return array_merge( $queries, $whitelist );
    }
    add_filter( ‘ip-geo-block-bypass-admins’, ‘my_bypass_admins’ );
  5. do-my-action、my-plugin-pageの部分に①で確認した「~~」を記入する。
    多い場合は以下のように追加する。
    $whitelist = array(
    ‘do-my-action’,
    ‘my-plugin-page1’,
    ‘my-plugin-page’2,
    ‘my-plugin-page’3,
    );
  6. ファイルを保存する。
  7. WordPressに戻ってエラーが出ていたページに再度アクセスする。

これで無事にアクセスできるはずです。
ただ、必要なページすべてに対応させなければならないので、結構大変かもしれません。

そもそもエックスサーバーのデフォルト機能で対応できた!

私はエックスサーバーを使用しています。

今回の件で根本的な対応の必要性を強く感じたので、エックスサーバーのセキュリティに関してよくよく調べてみたところ、「IP Geo Block」でできることはエックスサーバーの標準機能でもできたようです。

エックスサーバーでは、WordPressのセキュリティ設定について、以下のように色々と用意されていました。

  • 国外IPアクセス制限設定
  • ログイン試行回数制限設定
  • コメント・トラックバック制限設定

しかも、画像付きのマニュアル(WordPressセキュリティ設定)まで完備されています。

指示通りに設定してみましたが、とてもわかりやすかったです。
しかも簡単でした。
今回の苦労は一体・・・。

エックスサーバーはSSL設定も無料なので、セキュリティに気を使っている方におすすめです。
表示速度も速いですし、WordPressのインストールもボタン1つで済むので、今回のような余計なことに時間をかけなくて済みます。

終わりに

プラグインは便利ですが、よく考えて導入しないとダメですね。

色々と悩んだ結果、私はエックスサーバーの機能にお任せすることにしました。
ストレスフリーですごく便利です。

以上になります。それでは。