Google Crisis Response(Google)
災害に関する情報源や、行方不明者情報の収集と検索を行う『パーソンファインダー』を初めとするツールの提供が行われています。

2008年4月11日 金曜日

ロリポップとチカッパの404

Filed under: インターネット
時間:1時28分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 ロリポップとチカッパ。この2つの名前を知っているでしょうか。どちらも、GMOグループに属するレンタルサーバー会社で、とてつもない低価格で人気です。

 最近、この2つのサーバーで、存在しないページを表示させようとしたときにサーバーから返ってくるステータスコードがおかしいという噂話を聞きました。本来ステータスコードが404となるべき時に302が返ってくるというのです。結構話題になっているようで、「404 302」というキーワードで検索するだけで、複数のブログ記事が見つかりました。

 とりあえず、引用元を逆にたどってみました。御の字でございますさんの記事が大元のようです。

 この記事には、通信内容をキャプチャしたものが掲載されていて、それを見ると確かに404ではなく302が返ってきています。私もキャプチャして同じ結果になることを確認しました。
 404はいわゆる File Not Found で、要求された場所にはファイルがなかったことを意味します。これに対して、302は要求されたファイルが一時的に別の場所に変更されていることを意味します。郵便物で例えると、404は宛て先不明、302は長期旅行などで別の場所に転送されるようなものでしょうか。

 チカッパのサポートページには、エラーページをカスタマイズする方法の解説があります。それによると、.htaccess に ErrorDocument 命令を書くという方法を使うようです。ウェブサーバーが Apache であることがわかっているので、マニュアルで ErrorDocument 命令を調べてみました。

 マニュアルによると、指定方法は次の3つ。

 サーバー上でのファイルパスを指定する方法。エラーページのアドレスを指定する方法。メッセージテキストを指定する方法。

 チカッパで行っているのは、2つ目のアドレスによる設定方法のようです。マニュアルでは、この方法を使うと問題が起きるかもしれないと書かれています。302でリダイレクトされてしまうため、存在しないファイルを見ようとしてしまったことがブラウザには伝わらないという問題が起きているのです。

リモート URL (例えば、頭に http と付与した方法) をErrorDocument に指定するとき、たとえ文書が同じサーバにあろうとも、ドキュメントがどこにあるかを通知するために、Apache はリダイレクトをクライアントに送出するということに、注意してください。これにはいろいろと関連して起こる問題があります。中でも最も重要なのは、クライアントは元々のエラーステータスコードを受け取らず、代わりにリダイレクトのステータスコードを受け取るということです。これにより、ステータスコードを使って URL が有効であるかどうかを決定しようとするウェブロボットやその他クライアントを、混乱させるかもしれません。さらに、ErrorDocument 401 にリモートの URL を指定すると、クライアントは 401 というステータスコードを受け取らないため、パスワードをユーザーに入力要求しなければならないことがわかりません。従って、ErrorDocument 401 というディレクティブを使う場合は、必ずローカルな文書を参照しなければなりません。

 チカッパは、なぜこの方法を選択してしまったのでしょうか。私の想像は次のようなものです。

 まず、初期設定で表示されるような地味なエラーページを避けたかったのではないでしょうか。
 初期設定のエラーページはファイルがないことは伝わりますが、不慣れな人はそこからどうしたらいいのかわからないという問題があります。そのためのサポート情報を表示することによって、親切なサービスを行うことができます。同時に、スポンサー広告のある自社検索ページへの誘導なども行うことができますし、グループ内のほかのサービスを宣伝することもできます。

 効果的なページを表示することが出来るとなると、さまざまな装飾も必要となります。サーバー上でのファイルパスで指定すれば本来のステータスコードを返すことが出来ますが、その場合は画像などの参照がウェブ上でのものと食い違ってしまうことがあります。調整をする手間を考えると、単純にアドレスでの指定をしてしまうほうが楽なのは間違いありません。
 エラーページのドメインが err.chicappa.jp となっているように、すべてのエラーページを1つのドメインで一括管理することも出来ます。意地悪な言い方をすれば、ユーザーの利便性よりも運営の利便性を優先したと考えられます。

 対処方法ですが、チカッパの場合はアドレスでの指定以外の方法でカスタマイズすればいいでしょう。default を指定すれば、初期設定にすることもできると思います。
 ロリポップは管理画面からのカスタマイズ方法が説明されているのみで、 .htaccess によるカスタマイズ方法は紹介されていませんでした。しかし、FTP で直接編集してしまえば、チカッパと同じようにすることは可能かもしれません。

参考になりましたか?
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4.00 out of 5)
by WP-PostRatings
Loading ... Loading ...

コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

HTML convert time: 0.428 sec. Powered by

Images is enhanced with WordPress Lightbox JS by Zeo