ファイルの有無でメンテページへ切り替える為のmod_rewrite設定
あらかじめこの設定をしておけば、サイトのメンテナンス時、
毎回メンテページへのリダイレクトを設定する手間が省けます。
そこの『え?1回リダイレクトの設定すれば、後は毎回コメントを解除するだけなんだけど』とか言ってる人!
ごもっとも。
まー、色々方法がある中から、自分の好きなものを選べる方がいいと思うので。
設定
以下が設定例になります。
// .htaccess ErrorDocument 503 /mainte.html <IfModule mod_rewrite.c> RewriteEngine On RewriteCond /var/www/html/mainte_trigger.txt -f RewriteCond %{REQUEST_URI} !^/mainte.html [NC] RewriteRule .* - [R=503,L] </IfModule>
ドキュメントルートは『/var/www/html』になっていて、メンテページを『mainte.html』として配置しています。
上記の場合
- 『/var/www/html/mainte_trigger.txt』が存在する場合
にHTTPステータス503でメンテページを表示します。
切り替え方法
後はSCPなりコマンドラインなりで『/var/www/html/mainte_trigger.txt』を作成すればメンテページ表示、削除すればメンテ解除になります。
補足
mainte_trigger.txtのサイズまで見る場合、『-f』オプションではなく『-s』オプションを使用します。
- -f : 『ファイルが存在する場合にtrue』
- -s : 『ファイルが存在し、サイズが0でなければtrue』