エントリー・アーカイブの一部が表示されない不具合のお詫び
先日、ニュース欄にて「2007/04/07のエントリーが正常に表示されないため現在削除しています。」というお知らせを致しましたが、調査したところ、ダジャレカテゴリーのエントリー・アーカイブの直近20エントリー位が全て真っ白になる状態が数日続いておりました。
原因は、最近エントリー・アーカイブ本文下に「関連記事」という一覧を新たに掲載したのですが、その中で利用しているPHPスクリプトのエスケープ処理に不具合があったため、一覧にエスケープが必要なタイトルが表示されているとPHPが正常に処理されず、結果的に真っ白なページが表示される状態になっていました(メインページやカテゴリー・アーカイブでは問題なく表示されます)。
RSS リーダーで購読されている方でアンカーを辿ってこられた場合、直接エントリー・アーカイブにジャンプするため、そこで真っ白なページに遭遇してしまうことになります。大変ご迷惑をおかけ致しました。
現在は回復しています。関連記事一覧も正常に表示されるようになりましたが現在は削除しています。
他のサイトを訪問して、ページが 404 ではなく単に真っ白になるようであれば、そのページはPHPエラーが発生している可能性があります。特に個人サイトの場合、運営者本人がエントリー投稿後すべての関連ページを確認する可能性は低く、要するに「気がついていない状態」が少なくないのではないかと思われます。
今回のPHPエラーでページが真っ白になるという事象は、コンテンツ自体も空の head 要素と body 要素、そして一部の要素しか存在しません。
具体的には下記のようなマークアップになります。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=shift_jis"></HEAD>
<BODY></BODY></HTML>
それでいてメインページや他のアーカイブページからはリンクが設定されているので、検索エンジンからインデクシングの対象とみなされます(Sitemap も同様)。
Yahoo! 検索では404/503 エラー含め、こういったページのチェックがかなり厳しい(=SEOに影響する)ように思われます。Google Analytics を確認したところ、この不具合が発生した少し後から Yahoo! 検索からのアクセスが若干下がったように感じました。
という訳で、カスタマイズされている方は今回のように真っ白になるページがないよう気をつけましょう(自戒の念を込めて)。
- テキストからグラフィックをつくる(仮)
- Six Apart が「住職の公開面接(シックス・アパート オープンハウス)」を実施
- 555万5555アクセス特別企画
- CSS nite MT4LP5 終了
- シックス・アパートに転籍致しました
- MT4LP5
- Yahoo!ニュース ブログ/意見コーナーにブログ記事の配信開始
- 500万アクセス特別企画
- Movable Type 4 配布テンプレート不具合のお知らせ
- CORESERVER(CORE-A)移行後の感想とコメント投稿エラーについて
- Web2.0 EXPO Tokyo 2007
- 検索機能復活のお知らせ
- 「Movable Type WEBデザインの新しいルール」発売
- サーバ移転メモ & Movable Type 4.01 バージョンアップ
- 「WebSig24/7 MT4分科会 第1回イベント」終了
- サーバ移転一旦中止します
- サーバ移転のお知らせ
- 「WebSig24/7 MT4分科会 第1回イベント」でゲスト出演します
- 「Webデザインの新しいルール Movable Type」校正完了
- 「Webデザインの新しいルール Movable Type 4.x」について(その3:カスタマイズ)
初めまして。いつもお世話になっております。
当方、Movable Type 3.34なのですが、
こちらのテンプレをカスタマイズして利用させていただいております。
ずっと、何事もなく動いていたのですが、
1週間ほど前に、突然トップページとアーカイブとエントリーの一部が真っ白になってしまいまして…
毎日四苦八苦しておりましたところ、
こちらのエントリーに辿り着きました。
記事を拝見して納得してしまいました。phpエラーなのですね。
原因が分かって、ほっとしました。
現在、こちらの記事と全く同じ状況で、真っ白なページのソースも同じです。
でも、どの部分を修正して良いのか分からないので、
1行ずつ消してみたり、また書き加えてみたり…と、色々試しております。
(ページ分割とカテゴリーと月別の合計数を表示させるプラグインを埋め込んであります。)
ですが、どうにも煮詰まってしまいました。
>PHPスクリプトのエスケープ処理に不具合があったため、一覧にエスケープが必要なタイトルが表示されているとPHPが正常に処理されず…
とありますが、
エスケープが必要なタイトルとは何ですか?
お忙しいこととは存じておりますが、どうかお知恵をお貸しください。
よろしくお願いいたします。
>りおさん
はじめまして。
ご質問の件ですが、特定のページのみが表示されないのであれば、記事タイトルまたは記事本文に原因となる文字列が含まれている可能性がありますので、記事の内容をどこかに保存しておいて、ごっそり削除して再構築してみてください。正常に表示されれば、削除した内容を少しずつ元に戻して再構築し、表示されなくなれば、追加した部分をまたこまかく分割して…ということを繰り返せばうまく切り分けられると思います。
「エスケープが必要なタイトル」は
http://www.scollabo.com/banban/php/php_07.html
等に掲載されています。
もし原因がお分かりにならないようでしたら、生成した後のページ(ブラウザで表示される前のファイル)を圧縮してメールにてお送りください。
それではよろしくお願い致します。
yujiroさん、お返事ありがとうございます。
ご指摘のように、最近のエントリーを消してみたら見事に表示されました!
エラーの原因は、phpの事をメモしたエントリーでした。
<?php・・の「<」を直していなかったのです(汗汗汗
表示されなくなった日に、テンプレとプラグインをいじっていたものですから、
ずっと、それが原因だと思ってテンプレを見直しておりました。
イチから作り直ししないといけないかも…と半分諦めていたので、とても嬉しいです。
丁寧に教えてくださって、どうもありがとうございました。
あの…もうひとつ伺わせてください。
よくネット上で見かけるのが、「MTは、ある程度の上限を超えると不安定になる」という事なのですが、
どうなのでしょう???
現在、エントリー数が1800程あり、再構築もかなり時間が掛かるようになってきました。
やはり、ある程度のところでお引越しを考えた方がいいのでしょうか?
>りおさん
こんばんは。
ご連絡ありがとうございました。
無事に直ったようで良かったです。
また、ご質問の件ですが、再構築時間を短縮したい場合はダイナミックパブリッシングという手もあります。
不安定(=再構築に時間がかかる等)になるのは、MTよりもサーバの性能に依存する問題ではないかと思います。
それではよろしくお願い致します。

