更新できない!WordPressエラー「501 Not Implemented」の原因と2つの対策方法。
ワードプレス記事保存でエラー「対応していないメソッド(MOVE/COPYなど)を使用した」。原因はエックスサーバーのWAF設定
先日、WordPressの過去記事を更新しようとしたところ、以下のエラーが表示され記事が更新できないトラブルに悩まされました。
一応、解決はしたので、本記事では備忘録として原因と対応方法についてまとめました。
エラー内容
501 Not Implemented
アクセスしようとしたページは表示できませんでした。
このエラーは、実装されていないメソッドでのアクセスがあったことを意味します。
・対応していないメソッド(MOVE/COPYなど)を使用した。
結論から言うと、原因はエックスサーバーのWAF設定(Webアプリケーションファイアウォール)でした。
WAFはレンタルサーバーが提供してくれているセキュリティ機能で、Webアプリケーションの脆弱性を悪用した攻撃からサイトを守ってくれるのですが、不正な攻撃だけでなく通常のブログ記事更新にも影響が出てしまうようです。
今回はエックスサーバー(Xserver)のWordPressで事象が発生しましたので、エックスサーバー前提で記述します。他のレンタルサーバーでも同様の現象が発生しているかどうかは不明です(ConoHa WINGでもWAFが実装されましたし、他のレンタルサーバーでも起こる可能性はあると思います)。おそらく、シン・レンタルサーバーやWPX Speed等のエックスサーバー系の別サーバでも同様に発生すると思われます。
本エラーの対策方法としては、以下の2つになります。
- WAF設定にひっかかる文字を記事内から削除する(ただし対象文字の特定が難しい)
- WAF設定を一時的にOFFにして記事更新する(後で戻すことを忘れないこと)
対策①:WAF設定にひっかかる文字を記事内から削除する
WAF設定のエラーは記事内に規制対象のNG文字が含まれている場合に発生します。
しかし、実は以下のような事情から対象文字を特定して対策するのに手間がかかる場合が多いです。
- 記事のタイトルや本文だけでなく、リンクや各種URL内にNG文字が含まれている場合もエラーになるので特定が難しい
- さらに具体的にどの文字がNG対象となるのかエックスサーバーのマニュアルなどに明記されていない
初心者の場合は対応が難しい場合もありますので、時間がかかりそうだと判断した場合はWAF設定をOFFにする対策をした方が良いでしょう(詳細は「対策②:WAF設定を一時的にOFFにして記事更新する」参照)。
※ただしWAF設定OFFは一時的とはいえセキュリティ面で脆弱になるため、基本的にNG文字を特定して対策する方が望ましいです
この対策で厄介なのは、エックスサーバーのマニュアルに具体的なNG文字が記載されていない点です(メッセージには「MOVE/COPY」と書いてあるが、多くの場合は他の文字列でひっかかっているはず)。
こちらの公式のWAF設定の仕様を確認し、6種類の対策項目の内容から類推するしかありません。
一番多いのは「コマンド」でしょう。対策内容に具体的な文字の例が書いてありますので、これらの文字が含まれていないか確認しましょう。
その他にも以下のような部分が記事内容によってはひっかかる可能性があります。
記事内容によってNGになりやすい項目は変わります。特に当ブログのようにIT技術について書いているサイトは、NGになりやすい傾向にあると思います。
PHPに関する記事、SQLに関する記事、スクリプトに関する記事、ブログ運営やサーバ設定について書いている記事は、それぞれ該当項目にひっかかりやすくなります。
また、NG文字列は本文やタイトルだけとは限りません。
リンクURL、アイキャッチや画像のURL、OGP設定にNG文字が含まれている場合もエラーになってしまいます。
私は以下のOGP画像のURLパス内にNG文字が含まれていて、なかなか気が付くことができなかった経験があります。
以上のとおり、各対策項目の技術について詳しい人でないと、なかなかNG文字を特定することができないと思います。無理だと感じたら、後述のWAF設定をOFFにする対策を検討しましょう。
対策②:WAF設定を一時的にOFFにして記事更新する
2個目の対策選択肢として、エックスサーバー(Xserver)のWAF設定を一時的にOFFに設定して記事を更新し、その後で設定を戻すという対策もあります。
ただし、以下のデメリットもあるので欠点を理解して対策を実施しましょう。
- 設定の変更に1回最大1時間かかる(ON→OFF、OFF→ONの往復で最大2時間かかる)
- 一時的とはいえセキュリティ面で脆弱になる
設定はエックスサーバーのサーバーパネルから行います。
まずは右下の「セキュリティ」の「WAF設定」をクリックします。
ドメインのリストが表示されるので、設定するサイトの「選択する」リンクをクリックします。
6つの対策項目が表示されるのでOFFに設定します。どの項目でひっかかっているか見当がついている場合は、必要なものだけをOFFに設定するようにしましょう。
確認画面で確定します。以下のとおり、この後に設定が反映されるまで最大1時間かかりますので気長に待ちましょう。
設定中は以下のとおり、「反映待ち」が表示されます。この表示が消えれば設定完了です。
設定完了後に記事を更新すれば、エラーが出ずに保存できるようになっているかと思います。記事の更新が終わったら設定を元に戻しておきましょう。
以上です。
本来は、WAF設定はあなたのブログ・サイトを悪意から守ってくれるセキュリティ設定です。OFFにしたまま放置するのは安全ではありませんので、必ず記事更新後に設定を元に戻すことを忘れないでください。
また、頻繁に更新する記事で本エラーが出ている場合は、毎回WAF設定を変更するのは現実的ではないため、前述の「対策①:WAF設定にひっかかる文字を記事内から削除する」の根本対応を実施することをオススメします。