WordPressの編集画面にある「変更をプレビュー」ボタンを押した後に501エラーが出てしまうと相談があったのでググったメモ。
症状:記事のプレビューページを表示しようとしてリダイレクトする
このエラーは、実装されていないメソッドでのアクセスがあったことを意味します。
以下のような原因が考えられます。
対応していないメソッド(MOVE/COPYなど)を使用した。
https://example.com/sample?preview=true のような、該当記事のプレビュー画面URLを直接ブラウザのURL入力箇所にペーストしてアクセスするとプレビューページが表示され、501は表示されない。
「変更をプレビュー」ボタンを押した後、プレビューページを表示してくれようとする動きはするんだけど、501エラー画面にリダイレクトしてる感じ。
「変更をプレビュー」ボタンを押してからページを表示するまでの間に501になる何かがあるようだ。
原因:XserverのWAF設定
同様の症状を探したところ、どうやらXserverのWAF設定が原因だということがわかった。
XserverのWAF設定をオフにする

セキュリティのメニューの中に「WAF設定」という項目があるのでクリックする。

コマンド対策が今回影響していたので、ONからOFFにする。
注意点
- WAFの設定反映に最大1時間かかる
- ブラウザキャッシュをクリアしないと確認不可
参考:Xserverでサイトが丸ごと501になった話 ― WAF誤検知と広告自動テストの落とし穴
これで反映されるのを待ち、再度「変更をプレビュー」ボタンをクリックして確認したところ、無事に表示されるようになりました。
今回はこのコマンド対策に誤って引っかかっていたようです。
WAF設定とは
WAF(ウェブアプリケーションファイアウォール)は、ウェブサイトをSQLインジェクションやクロスサイトスクリプティング(XSS)などの不正な攻撃から保護するセキュリティ機能です。
サイトを安全に運用するために設定されていることが多いですが、たまに今回のような誤検知などがあります。
XserverのWAF設定には下記のような注意書きも。
- WAF設定では、有害な可能性のあるアクセスを検知する機能を提供しますが設定により不正アクセスを100%駆除することを保証するものではありません。
- あくまでWebアプリケーションの持つ脆弱性に対する不正アクセスへの最低限の予防策となります。
- 脆弱性に対する不正アクセスへの根本的対応として随時最新バージョンのアプリケーションの利用やセキュリティ対応が必ず必要となりますのでご確認の上ご利用ください。
- WAF設定は厳格なルールに従って不正アクセスを判断するため、ご利用のWebアプリケーションの動作についても影響を与える可能性がありますのであらかじめご了承ください。
WAF設定のON/OFFは必要に応じて切り分けてください。