2019年2月27日水曜日

【EC】サイトは生きてるのにサーバーステータス500を返す謎現象を解決

EC-cube 2.13.1で起こってた謎現象で、先ほど解決してどっと肩の荷が下りた。

Ec-cubeをトップにして、WP-POSTプラグインのためにWordpressを入れているクライアントから連絡があり。
「サイトが検索に一切引っかからない」とのこと。
調べてみると、確かに掘っても掘っても出てこない。でもサイト自体はちゃんと稼働している。
htaccessとかいろいろ調べてみたけど特におかしいところがない。

GoogeleのSearch Consoleで確認したら、
・Fetch as Googleで取得したら「アクセスできません」ステータスになる(※「一時的に~」ではない)
・robots.txtも同様。
・テストレンダリングもアクセスしてもらえず。
・そもそもsitemap.xmlを生成するsitemap.xml Editorでもアクセスが弾かれる
・sitemap.xmlを置いて送信したらできたが、ステータスは「保留」

こりゃ何かおかしいぞと、
ECとWPのhtaccessを再度チェックしてみたり、
Wordpressのプラグインを未使用設定にしたり、
robots.txtを更新して置いてみたり、
sitemap.xmlを置いて送信したり、
などとしてみるともまったく動かず。

そもそも「アクセスできません」ステータスを改めて調べてみたら、サーバー500エラー。
たしかにステータスチェッカーを使うと500を返す。
つまりサーバー側におかしい状況があるという事なので、さらに頭を抱えることに。
サイトは生きてる。でもサーバーは死んでる。
ゾンビみたいな状態なサイトを目の前に、頭を抱えるさ羽目に。

で、泣きそうになりながら調べていくと、
ECのプラグインのコードに「function destroy()」というのが入っていると、
それが500のステータスを引き起こす現象があるというのを確認。
この記事「EC-CUBEサイトがgoogle検索にかからない!!!(2/13追記)」を参考に
プラグインを落とし、指定されてるサクラエディタを落とし、「function destroy」をキーワードにGrep(システムの人から時々聞いていた言葉をよくわからず羽目に。つまりテキスト検索ってことか?)したところ、21ファイルが検索に引っかかる。
そのファイルにある

function destroy() {
     parent::destroy();
}
をコメントアウト。
/*
function destroy() {
     parent::destroy();
}
*/
そしてそのファイルをバックアップ回避させながらアップロード。
そして、ステータスチェッカーで再チェック。
すると・・・

200!

無事解決!(涙)
Fetch as Googleもインデックス申請もsitemap.xml Editorもすべて稼働を確認。
ほっとしたああああああ。

▼EC-CUBEサイトがgoogle検索にかからない!!!(2/13追記)
http://webbeco.webcrow.jp/blog/website/201501211015/

▼HTTPステータスコードチェッカー β3
http://st-code.itland.ezic.info/

▼サクラエディタ
https://sakura-editor.github.io/download.html

▼サイトマップを作成-自動生成ツール「sitemap.xml Editor」
http://www.sitemapxml.jp/

0 件のコメント:

コメントを投稿