WordPressのテーマによっては外観をカスタマイズし、変更内容を反映しようとしたときに画面がずっと更新中になり、公開ボタンを押すと最終的には上部に「何かうまくいかなかったようです。時間を置いてもう一度お試しください。」と表示されてしまうことがある。
テンプレートやどこを変更するかによって発生したりしなかったりする。自分の場合はHestiaで発生した。
症状としては、トップページのフロントページセクションでfontawesomeが変更できない、テキストが変更できない、画像が変更できないといったエラーが発生。
このエラーの原因と対処法について。
対処法・解決方法
先に結論から。SiteGuardというプラグインがエラー発生の原因でサーバー側との通信でセキュリティエラーが発生しているため、.htaccessファイルに以下を追記して、自分のIPアドレスからの通信をすべて許可するように変更する。
SiteGuard_User_ExcludeSig ip(自分のIPアドレス)
▼.htaccssの編集例
以下の#site guard ip除外が追加した内容。
自分のIPアドレスの調べ方はCMANさんのサイトで確認できます。クリックしてページを表示すればIPアドレスが表示されます。
エラーの原因
エラーの原因はセキュリティが強化されたことによる通信エラー。具体的には WAF(ワフ)による部分的な通信障害が発生している状況。リンク切れやHTMLや入力内容が悪いということではない。
ログイン保護などセキュリティ関連のプラグインを追加した場合に発生する。
SiteGuardやwp-statisticsといったセキュリティをいじるプラグインが追加されたときに発生する。
WAFとは?
WAF(ワフ)は”Web Application Firewall”の略で、Webアプリケーションの脆弱性を悪用した攻撃からWebサイトを保護するセキュリティ対策。
Webサーバーの前段に設置して通信を解析・検査し、攻撃と判断した通信を遮断することで、Webサイトを保護する。
.htaccessとは?
.htaccessとは(ドット)エイチティーアクセスと呼び、サーバーに対してあるURLでアクセスしてきたときの追加対応を記述するファイル。例えば以下のような処理を簡単に設定できる。
- リダイレクト:別のページにとばす。
- BASIC認証:サイトを閲覧するためにユーザー名とPWの入力を必須にする。
- IP制限:特定のIPアドレスからのアクセスを許可する。
- 404ページの指定など
.htaccessを採用しているのはApacheを採用しているWEBサーバーのみ。設定内容はファイルを設置したディレクトリ以下にしか反映されないため、基本的にはプロジェクトのルートディレクトリに設置する。
配下のディレクトリにも.htaccessがある場合は、配下のファイルの内容で上書き(優先)される。