映画サイトの映画生活のデザインリニューアルをして、いくつかデザイン以外の修正もあり、サーバ停止時間が発生するため、メンテナンス画面を作ることにしました。今日はその簡単なトピックスを書いてみたいと思います。
まず最初に、メンテナンス画面は次のような形の要件があるかなと思っています。
最初、ここら辺のすべての処理をmod_rewriteだけで実現できるかなと思ったのですが、残念ながら、mod_rewriteでは300番系のエラーを出すことができますが、503のエラーは出せないようなのでさくっと簡単なものを作るの「には」便利とかいわれてるPHPで、さくっと、503を出すことにしました。(もともと、映画生活がPHPなので深く考える必要なかったというのが理由です。)
まず、いろいろ考えるのも面倒なので、mod_rewriteをこんな感じに設定します。
RewriteEngine on RewriteRule ^503/ - [L] RewriteRule ^.*$ 503/503.phpこれで、設定されているディレクトリ以下が503ディレクトリ以外全部 /503/503.phpに飛ばされます。
503.phpには次のように書きました。
<?php header ('HTTP/1.0 503 Service Temporarily Unavailable'); include(dirname(__FILE__) . '/maintenance.html');
これで、503を出力しつつmaintenance.htmlを表示します。
これで、すべてのアクセスでメンテナンス画面を出力することができます。
maintenance.htmlにPHPコードがかいてあると、それが実行されてしましまうので、
あと、maintenance.html内に、画像など外部リソースのリンクを張るときは、503ディレクトリに入れるのとそれをフルパス記載することわすれないように注意してください。
それでは実際に使われたメンテナンス画像をごらんください。
maintenance posted by (C)フォト蔵
なんらかのご参考になれば幸いとおもいつつ、もっとうまい方法があるような気がするのでもしよろしければ、フィードバックをいだければと思います。