Webサイトのメンテナンスを告知しながら特定のIPで作業する

こっそりWebサイトのメンテナンス作業をしたいとき,外部からアクセスされた時には「メンテナンス中」の表示を出し,作業者のIPからアクセスされたときは通常通り表示する方法.

.htaccess に以下のように記述(要mod_rewrite).
(以下の例は 192.168.1.1 または 192.168.2.xxx を許可)


RewriteEngine on

RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.1$
RewriteCond %{REMOTE_ADDR} !^192\.168\.2\.
RewriteRule ^mainte.php$ - [L]
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.1$
RewriteCond %{REMOTE_ADDR} !^192\.168\.2\.
RewriteRule ^(.*)$ mainte.php [L]

mainte.php の先頭には以下のようにPHPコードを記述.


<?php
header ('HTTP/1.0 503 Service Temporarily Unavailable');
?>
これを入れておけば,検索エンジンにキャッシュされる事は無い(たぶん).
(503ステータスコードは,「サーバはサーバの一時的な過負荷あるいはメインテナンスのために、現在、リクエストを扱うことができない」の意味)
mainte.php には,メンテ中でごめんなさいというを書いておく.