ファーストサーバーのギガシリーズなどを利用しているユーザーは、もれなく新しいサーバーであるZenlogicへ移行することになるのですが、移行後にWordPressの管理画面で記事の更新を行うと「403エラー」のトラブルが多発したことから、その原因と対処法についてまとめてみました。
ZenlogicのWordPressで403エラーが発生
Zenlogicに移行後、WordPress管理画面で各種設定の更新ができたり、WEBサイトの表示は問題ないのに、特定の固定ページや投稿を編集すると「403エラー」が表示されるという症状です。色々調べてみた結果、ZenlogicサーバーのWAFが原因である可能性が大きいことが分かりました。
ZenlogicのWAFのを一旦無効にして確かめてみる
Zenlogicのコントロールパネルへアクセし、機能一覧から「WAF(WEBアプリケーションファイアウオール)」メニューをクリックします。対象のドメインでONになっているWAFをOFF(無効化)します。
WordPress管理画面に戻り、403エラーが表示される処理(ページの更新など)を試します。問題なく処理が行われれば、WAFが原因と見て間違いないでしょう。
WAFが原因の場合の対処法
特定のページの編集時だけZenlogicのコントロールパネルからWAFを切る、という方法が一番確実な方法かもしれませんが、運用上、大変面倒くさいですね。。。なので、もしエラーが出る処理やページ、場所が特定できるのであれば、WAFに除外ルールを適用させることで、いちいちコントロールパネルでWAFを切ったり入れたりする必要がなくなります。
WAFへ除外ルールを適用する手順
①Zenlogicのサーバーからwaf.log
(WAFのログファイル)をダウンロードします。※ログファイルはサーバー内の
/logs/waf
ディレクトリに保存されています。②ダウンロードしたwaf.logファイルを開き、直近の作業ログを確認します。
③そして、waf.log内のシグネチャと呼ばれる文字列をコピーします。
具体的には/OFFICIAL/と書かれた後ろの「/
00202000
」などの文字列のことを指します。
DETECT-STAT:WAF:RULE_SIG/******/OFFICIAL/
00202000
/*****④.htaccessファイルを新規で作成し、③でコピーしたシグネチャの除外指定を行います。
<ifModule mod_siteguard.c>
SiteGuard_User_ExcludeSig
</ifModule>
SiteGuard_User_ExcludeSig
00202000
</ifModule>
⑤.htaccesssファイルを、サーバーの
wp-admin
/ディレクトリにアップロードして、WordPress管理画面から問題なく処理を行うことができるかどうかを確認します。除外指定を記述した.htaccessファイルは、403エラーが表示されるページ(ファイル)と同じ階層に設置する必要があります。例えば、wp-admin/post.php(投稿ページ)で403エラーが表示される場合は、wp-admin/のフォルダ内に.htaccessをアップします。
引き続き403エラーが出る場合は、都度waf.logファイルを確認してからシグネチャを.htaccessに追加していく…という作業が必要です。
1 2 3 4 5 6 |
<ifModule mod_siteguard.c> SiteGuard_User_ExcludeSig 00202000 SiteGuard_User_ExcludeSig 00202001 SiteGuard_User_ExcludeSig 00202002 … </ifModule> |
.htaccessの除外設定は複数行になってもOKなので、1行ずつ追加していってください。
コメント