WordPress「501 Not Implemented」が表示された時の原因と対処法

この記事では、WordPressの記事更新の際に表示された「501 Not Implemented」の原因とその対処法を解説します。

つい先日、当サイトのドメインに関する記事を更新しようとしたところ、「501 Not Implemented」が表示され更新ができませんでした。

結論として、記事内にあった「cd」という英字がエラーの原因だったようで、この英字を消すことで無事解決することができました。

私のケースでは「cd」がエラー原因でしたが、起こりうる原因はこの他にもあるので情報を共有します。

「501 Not Implemented」の原因

「501 Not Implemented」は、ウェブサーバー側でエラーが起こったことが原因です。

具体的には、サーバーで設定しているセキュリティ対策に、一部の文字列が不正アクセスとして検知されてしまうことが原因のようです。


当初、当サイトで設定していたセキュリティ対策(WAF)はこんな感じです。(エックスサーバーです。)

対策内容に書かれている通り、各セキュリティ対策ごとに不正アクセスを検知する文字列があります。
この他にも以下の文字列が不正アクセスとして検知されます。

設定項目 エラー原因
ファイル対策 etc
コマンド対策 ;cccd

私のケースではドメインに関する記事である、この「cd」がエラーの原因でした。

補足:ステータスコードについて

補足ですが「501 Not Implemented」とは、HTTPステータスコードの1つです。
ステータスコードとは、サーバーからブラウザに返ってくる3桁の数字からなるコードのことです。

ステータスコードには100〜500番台あり、400番台と500番台がエラーコードになります。

  • 100番台:処理の継続
  • 200番台:処理の成功
  • 300番台:移転および転送の処理
  • 400番台:クライアントエラー
  • 500番台:サーバーエラー

エラー番台を確認することで、どこでエラーが起きているのかを把握することができます。

「501 Not Implemented」の対処法

「501 Not Implemented」の対処法はシンプルに2択です。

2つの対処法

  • 原因となる文字列を削除する
  • 原因となるセキュリティ対策をオフにする

エラー原因となる文字列を削除することで、原因は解決できます。

もしくは、どうしてもその文字列を使いたいのであれば、エラー原因となるセキュリティ対策をオフにすれば解決できます。
例えば、「cd」という文字列を使いたいならコマンド対策をオフにする、といった感じです。

ただし、不正アクセスは年々増えているので、可能な限りセキュリティ対策はオフにせず、文字列を置き換えるようにしましょう。

さいごに:焦らず原因を調査しよう

この記事ではエックスサーバーを例にしていますが、サーバー会社によってセキュリティ対策は異なります。

エックスサーバーのように複数のセキュリティ対策を個別で設定できる会社から、セキュリティ対策は一括操作しかできない会社まで様々です。

どちらにしろ、WordPressで「501 Not Implemented」の表示がされた時は、セキュリティ対策をオフにすれば問題が解決できる可能性が高いので、焦らず対処しましょう。

というわけで以上です。