こんにちは!器械いじりや最新テクノロジーが大好きなkensirouです。
先日、ブログ記事を更新したところ「501エラー」なるものが表示されて更新ができない状態になってしまいました。
今までは見たことが無いこういうやつです。
一応エラー内容は書かれていますが今一つ意味が分からないので「501エラー」でググってみました。
<501エラー>
実装されていないメソッドを使用した。例として、WebDAVが実装されていないサーバに対してWebDAVで使用するメソッド(MOVEやCOPY)を使用した場合に返される。
引用元:Wikipedia
そりゃ確かにCOPYは文章作成時に何回も使っていますが、そういう意味ではないと思われます。
なんのこっちゃ分からないまま、ためしに他のページを更新してみてもエラー表示にはなりませんでした。
ということはこのページに限って文章に何らかの問題があるのかもしれないと思い、その場所を特定してみました。
「501エラー」の原因の特定と対処法
どの文章がエラー対象になっているのか確かめるためにブログ記事の上半分と下半分を交互に切り取り→更新を繰り返してみました。
絞り込んだいった結果、半角大文字の「CD」という文字が原因で501エラーが発生することが分かりました。
この記事でも半角でCDと記述すると501エラーになるけど、全ての半角CDの文字が引っかかるわけではありません。
もう訳わからん!!
試しに半角CDを全角CDにするとエラーは発生しません。
今まではこのようなエラーが発生したことがないので、何か設定の変更によってエラーが出るようになったに違いないと思いよくよく思い返してみました。
それで思い出したのが2週間ほど前に行ったXサーバーのWAF(Webアプリケーションファイアウォール)の設定変更。
スポンサーリンク
サーバーパネル内のWAF設定から変更できるセキュリティ設定です。
6つの項目についてセキュリティの設定を行うことができます。
この6つの中のどれかにひっかかった可能性があると思い、一旦全部OFFにしてみました。
設定変更が反映されるには1時間ほどかかるそうなので、OFFにした翌日に記事内の全角CDを半角CDに戻してみると、無事更新ができるようになりました。
その後、一旦全部ONにしてひとつずつOFFにしてどの項目にひっかかっているのか絞り込んでいきました。
すると、「コマンド対策」のセキュリティ設定をONにすると「501エラー」が発生することが判明。
「CD」の文字がHTML入力側で何らかのコマンドに関連する文字だと認識され、前後の文字との関連でエラーが出たと思われます。
その辺は詳しくないのでハッキリとしたことは分かりませんが、これで一安心。
まとめ
できればセキュリティ設定をOFFにはしたくないのですがいたしかたありません。
おそらく、サーバー側の意図しない挙動だろうと思われるので、改善してくれることを願うばかりです。
最後までお付き合いいただき、ありがとうございました。