WordPress5.3になってきたあたりで、なんかテーマのアップデートか、人気記事ランキングの動きとして画像が見えなかったり、ウィジェットでそもそも反映されてなかったりという動きがありました。
調べて見ると、WordPress Popular Posts自体の動きでなく、それを保存できないWAFの設定が問題でした。WAFはサーバ側の話になるのですが、Wordpressで除外ルールを設けることでWordPress Popular Postsの設定も問題なく保存できました。
まあこれはWordpressで何か保存時の動きで怪しい時は疑ったほうがいいって感じなんですけどね。
そのあたりのトラブルシュートをメモしておきます。
同じことにはまっていたら何かヒントになればー。
最近1ヶ月くらいで、WordPress Popular Postsのウィジェット部分が表示おかしかった
現象として、ウィジェットにWordPress Popular Postsの記事ランキングがあるのですが、画像が出なかったり、そもそもウィジェットで反映できてないような感じでした。気のせいと思っていたのですが、ウィジェットをいじっても保存されずに「くるくる」回っているだけで保存されてないんですよね。
上の画像の通りです。これ保存できてないということですね。F5などで更新しても無駄で、また設定が元に戻りますね。
ロリポップWAFが原因だった
これWordpress使っていると結構あるんですが、ロリポップを使っているので、WAF設定として攻撃?として検知されるとブロックされちゃって、保存されないという防衛の仕組みなんですよね。ロリポップのWAFというのは正確でなく、サーバ側にWAFというシステムやソフトを入れているということだけだと思います。
WAF設定自体の話は省きますが、これは無効でなく、有効にして、除外ルールを設けて(例えば今回ならWordPress Popular Postsのウィジェット保存時の動き)いくのが望ましいとなります。
WordPress Popular Postsが保存できないのは、ロリポップのWAFが原因。無効にしたら保存ができた
こちらの記事が参考になりました。助かりました!WAF原因ってなかなか想像しづらいので。
WordPress Popular Postsのキャッシュクリアなどではなかった
一応他の原因かなと思って、WordPress Popular Postsの画像キャッシュクリアやレコードデータをクリアしたりしたのですが効果はなかったです。
対処法:SITE GUARDプラグインでWAF除外ルールを追加する
これでいけます。細かい設定まで書かないのですが、基本的に
- SITE GUARDのWAFチューニングサポート項目で設定する
- 対象のシグネチャ自体はロリポップのWAF設定ログで参照できる
- 除外ルールを作成し適用すればオッケー
WAF設定は他のサイトを参照してください。例えばですが、
カスタマイザーの設定で「何かうまくいかなかったようです。」というエラーが表示される場合の対処法
ロリポップ!で閲覧できません (Forbidden access)?原因はWAFか!
とかです。参考になりました。ありがとうございます。
SITE GUARDの除外ルールは.htacessを更新しているので、そこに直接書いてもありというところです。記述自体は、「SiteGuard_User_ExcludeSig 1で確認したシグネチャ」って感じですね。後述しますが、いきなりWordpressログインできなくなることもあるのでそのあたりは気をつけてください(笑)
ロリポップ公式でもあるのですが、WordPressにログインしようとすると403エラーが表示されます。も参考になるかと思います。もしログイン出来ないときなど。
トラブルシュートというかPopular Postsのウィジェットが保存できないのはこれで解決出来るはずです。
Site GuardのWAFチューニングサポートの除外ルール注意!
たまたま見つけた不具合の共有です。
公式もざっくり見てみたのですがとくに注意はなかったようです。一応サポートが無償であるとは思いませんが不具合っぽいので投げておこうと思います。(サポートはWordPress.orgのフォーラムでトピックタグ: siteguard-wp-pluginであります。WAFチューニングサポートのルール作成で500エラーとなるで投げてみました。)
(追記:その後運営側から応答があり、次以降バージョンで対応検討頂ける形になりました。ありがとうございました!)
不具合というのは、WAF除外ルールで、
こんな風にシグネチャは必須ですが、ファイル名とコメントは任意です。コメントは問題ないのですが、ファイル名は本来であれば文字通りファイル名として「aaa.php」とかみたいなのが入るのでしょう。あんまり深く考えず分かりやすいかなと思って「WordPress Poplular Posts」と入れてみました。
これで作成保存はできて、その後に、WAFルールの適用ボタンを押すと、
なんとエラーが起きてしまいました。おそらくですが、ファイル名に半角スペースが入っているのが怪しいっぽいです。ファイル名に半角スペースを入れるのはWeb上だとあまりなさそうですけど、Windowsとかだと多用しちゃってるのもあり癖ですね。
かなり焦ります。
この場合の対処方法は、直接FTPから.htacessを編集して、該当部分を削除することです。要は除外ルール部分を戻せばいいだけですので、焦らずやりましょう。
とはいえ、ソフト側で出来るなら半角は処理して欲しいという甘えた考えがあるのでこれは公式にも出しておきますね。