エックスサーバー でEC-CUBEサイトを運用していると501 Not Implementedエラーなど500番台のエラーが発生することがあります。
「実装されていないメソッドでのアクセス」とは何?MOVEやCOPYなんて使っていないけど・・・と思ってしまいますが、実はメソッドは関係がなく他の理由が多いです。
どんなエラーか?
501
Not Implemented
アクセスしようとしたページは表示できませんでした。
このエラーは、実装されていないメソッドでのアクセスがあったことを意味します。以下のような原因が考えられます。
対応していないメソッド(MOVE/COPYなど)を使用した。
管理者がアクセスした時にこのエラーが発生する理由としては、ほぼWAFの誤作動だと思われます。
(本当に遮断すべきアクセスの場合もありますので、絶対にWAFをオフにはしないでください)
501 Not Implementedになる例
エックスサーバー×EC-CUBE4の例で言うと、受注管理画面の受注内容からメールを送信する画面に行こうとすると、「メール通知に移動します。編集内容を保存してから移動しますか?」というメッセージが出ます。
そこで「保存して移動」を選択すると正常なデータであってもWAFが誤作動して501 Not Implementedエラーが発生することが知られています。
エラー回避できるか?
これはHTTPリクエストに含まれる一部の内容にWAFが誤反応をしているもので、リクエスト内容を変えてやれば回避することができます。
例としてあげた受注メール画面のエラーもカスタマイズすれば挙動を保ったまま回避が可能です。
同様のエラーが解決できない場合、ぜひお問い合わせください。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。