サイトのメンテナンスを行う際の .htaccess 設定
2010年02月03日
サイトのメンテナンスを行う際に、訪問者にはメンテナンス中であることを示す画面 /maintenance/index.html を表示し、検索ロボットには 503
HTTPステータスコードを返す .htaccess の設定方法。
メンテナンス画面表示用のファイルを配置するディレクトリ /maintenance を作る。
サーバにメンテナンス中を示すページのファイル /maintenance/index.html を配置する。
メンテナンス中ページに画像を表示する場合は画像ファイル /maintenance/maintenance.png を必要に応じて配置する。
503
ステータスコード(サービス利用不可)を返し、/maintenance/index.html の内容を表示させるために、以下の PHP スクリプト /maintenance/503.php を配置する。
<?php header ('HTTP/1.0 503 Service Temporarily Unavailable'); readfile(dirname(__FILE__) . '/index.html'); ?>
メンテナンスを行うディレクトリに、以下の記述の .htaccess ファイルを配置する。
メンテナンス作業者の IP アドレスを記述しておくと、作業者は通常の画面表示を確認できる。
RewriteEngine On RewriteCond %{REMOTE_ADDR} !=192.168.0.2 RewriteCond %{REQUEST_URI} !=/maintenance/503.php RewriteCond %{REQUEST_URI} !=/maintenance/maintenance.png RewriteRule ^.*$ /maintenance/503.php [L]
メンテナンス用ファイルを検索クローラーにキャッシュされないように、以下の記述を robot.txt に加える。
User-Agent: * Disallow: /maintenance/
これで、サイトメンテナンス中のページを検索クローラーにキャッシュされずに、訪問者にはメンテナンス中であることを示すページを表示することができる。