メンテナンス中画面を出す正しい作法と.httaccessの書き方

2009.06.23

経営・マネジメント

メンテナンス中画面を出す正しい作法と.httaccessの書き方

安田 英久
株式会社インプレスビジネスメディア Web担当者Forum編集長

今回は、Webサイトやサービスをメンテナンス中にする場合に、どのURLにアクセスしても「メンテナンス中です」の画面を出す正しいやり方を、人間にも検索エンジンにも適切にするやり方を解説します。

また、管理者が使っている一部のIPアドレスからのアクセスに対してはメンテ中を表示せず通常の処理/表示をします。メンテということは必ず状態をチェックするはずですから、自分たちはいつもの状態で確認できる仕組みが必要になるわけですね。

どういった設定だとまずいのか

メンテ中画面を出す悪い例としては、次のようなものがあります。

*全URLへのアクセスにRewriteでメンテ中画面を表示

ブラウザのURL自体はアクセスしようとしたURLのままで、メンテ中画面のHTMLが表示されます。ただしステータスコードは200。

実は最悪のパターン。検索エンジンがメンテ中の内容をその時点のコンテンツとして取得してキャッシュしてしまいます。

*全URLへのアクセスを302リダイレクトでメンテ中画面のURLに転送

ブラウザの表示自体が転送先のページに変わり、しかもそのページはステータスコード200となります。

ブラウザの表示URLが変わっているので、ブラウザのリロードでメンテが終わったか確認できませんし、検索エンジンのロボットにも通常のリダイレクトだと判断され、リダイレクト先のコンテンツをインデックスされる可能性があります。

そもそも、検索エンジンが302リダイレクトを適切に処理できることは期待しないほうがいいでしょう。過去にも302リダイレクトに関するトラブルは頻発していますから。

*503でApacheの「Service Temporarily Unavailable」を表示

あなたのサイトのユーザーが、英語のメッセージ(しかもいつ復旧するのかの情報ナシ)を見て不安に思わないのでしたら問題ないでしょう。

最初の2つは、レスポンスコード200が返るため、人間に対しては問題ないのですが、検索エンジンのロボットは、それがメンテ中の特別な処理だと認識できず、メンテ中画面をインデックスしてしまう可能性があります。NOT FOUNDなのにステータスコード200を返す「ソフト404」問題と同様ですね(ただし、上記の設定でも、/maintenance.htmlに直接アクセスがあると200が返ります)。

メンテ中もアクセスがあることを前提に、人間にはメンテ中であることをメンテ終了予定時刻とともにHTMLで示し、検索エンジンにはステータスコード503で一時的な状態であることを示す、その両方をちゃんとやるようにしましょう。

ちなみに、この設定はApache 2.2系でしか試していません。また、私はサーバーエンジニアではないので、もっと簡単な良い方法があるのかもしれません。良い方法をご存じの方や、 Apache 1.3系や2.0系でどうかなど、コメントで教えていただけると助かります。

※この記事は、Web担当者Forum(Web担)に掲載した編集部コラムを転載しています。
Web担当者Forumは企業ホームページ作りとネットマーケティングに関する情報サイトで、解説記事、コラム、ニュース記事などを毎日更新でお届けしています。
毎週月曜日発行のメールマガジンもありますので、興味のある方はぜひご登録ください。

続きは会員限定です。無料の読者会員に登録すると続きをお読みいただけます。

Ads by Google

この記事が気に入ったらいいね!しよう
INSIGHT NOW!の最新記事をお届けします

安田 英久

安田 英久

株式会社インプレスビジネスメディア Web担当者Forum編集長

企業のウェブサイト活用やウェブマーケティングに関するメディア「Web担当者Forum」(http://web-tan.forum.impressrd.jp/)を運営しています。

フォロー フォローして安田 英久の新着記事を受け取る

一歩先を行く最新ビジネス記事を受け取る

ログイン

この機能をご利用いただくにはログインが必要です。

ご登録いただいたメールアドレス、パスワードを入力してログインしてください。

パスワードをお忘れの方

フェイスブックのアカウントでもログインできます。

INSIGHT NOW!のご利用規約プライバシーポリシーーが適用されます。
INSIGHT NOW!が無断でタイムラインに投稿することはありません。