WordPressには、「Google AdSense」プラグインがあって、インストールしました。
便利です。
広告を表示する位置を、直感的に選択できるし、面倒なコードの設定とかも必要ありません。
AdSenseのアカウントを取得するまでが面倒ですが、一度とってしまえばこっちのもの、という感じです。
ところが!!
つまづきましたよ。やっぱり。
とあるサイトで、広告の表示位置を設定して、「保存」をクリックしたところ、
「設定を保存できませんでした。サーバーへのリクエストが失敗しました(エラー コード「403」)。」
というメッセージが表示されました。
WordPressをログアウトしたり、日を改めて試してみたりしても、このメッセージが表示されます。
Google AdSence のヘルプを見ても問題解決できそうな回答はないし(Googleではいつものことだね)、あれこれ検索していきついたのがこのページ。
Google Adsense Managerでエラーが出た時の対処法 エラー コード「403」
どうやら、WAF設定の影響らしいです。
「WAF設定をオフにしたら治った」とありましたが、セキュリティ上、オフにするのはとても不安です。
WAF(ウェブ・アプリケーション・ファイアウォール)とは、Webアプリケーションのやりとりにおいて不正侵入を防御することのできるファイアウォールのこと、だそうです。
こちらのページに、わかりやすいイメージがありました。
わたしは、heteml(ヘテムル)のサーバーを使っているため、WAFに関する操作ができるかと思い、管理画面にログインしてみました。
WAF設定を確認する
hetemlコントロールパネル(管理画面)では、「WAF設定」の項目がありました。
エラーが出ているドメインを確認したところ、WAF設定はオンになっており、検知ログにはアクセス遮断をおこなった履歴が表示されていました。
.htaccess に除外設定を追記する
heteml(ヘテムル)には、WAFによるアクセス遮断が起きているときの対処法が書かれていました。
WAF設定にふれるのは初めてでしたが、コピペでできるため、作業は難しくなかったです。
コピーする「.htaccessによる除外記述」部分は、いったんテキストエディタ(miとか)にペーストしておくとよいです。
そして、WordPressのAdSense設定に戻って、広告位置の設定をして保存したのですが、またエラーとなりました。
再度、WAF設定の検知ログを確認したところ、先ほどとは別のログがありましたので、その除外記述を.htaccessに追記して保存。
先ほどと同じように、広告位置の設定をして保存したところ、今度はエラーは出ませんでした。
つまり、.htaccessに合計2つの除外記述を追記しました。
他のドメインのWAF設定もオンにする
エラーが出ているサイト(ドメイン)は、最近、追加したものだったのですが、昔、設定したドメインのWAF設定を確認したところ、オフになっていました。
これらもオンにしたので、同じようなエラーが出るかもしれません。