【経験談】WordPress「501 Not Implemented」の原因と対処法

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

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

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

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

「501 Not Implemented」の原因

「501 Not Implemented」が表示されるのは、Webサーバー側でエラーが起こったことが原因です。

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


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

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

この他にも以下の文字列が不正アクセスとして検知されます。

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

こんな感じで、何気ない英字にエラー原因があったりするのです。

私の経験談:エラー原因

私のケースでは、ドメインに関する記事が原因でした。


国別ドメインを紹介していたので、この「cd」がエラーの原因です。

そこで、このcdを削除したところ、問題なく記事が表示されるようになりました。

ナオ

日本語でサイト運営している限りは神経質になる必要はありませんが、もし501エラーが出たらこれらの原因を探ってみてください。

「501 Not Implemented」の対処法

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

501エラーの対処法

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

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

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

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

ナオ

最終的に私は、一部のセキュリティ対策をオフにしました。

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

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

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

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

ナオ

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

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

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

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

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

というわけで以上です。