サイトのメンテナンスを行う際の .htaccess 設定

サイトのメンテナンスを行う際に、訪問者にはメンテナンス中であることを示す画面 /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/

これで、サイトメンテナンス中のページを検索クローラーにキャッシュされずに、訪問者にはメンテナンス中であることを示すページを表示することができる。

メンテナンス画面例 Screenshot

«
»