17
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Apache]mod_rewireで時間判定し自動的にサイトをメンテナンス状態にする

Posted at

mod_rewrite ではサーバの時間を扱うこともできます。

下記は、2014年3月6日の15時から2時間の間、全HTTPリクエストに対してメンテナンス説明ページを表示する例です。

.htaccess
RewriteEngine on

RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR} >2014030614
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR} <2014030617
RewriteCond %{ENV:REDIRECT_X_IS_MAINT} !^1$
RewriteRule .* /maint.html [E=X_IS_MAINT:1,L]

無限リダイレクトにならないように、一度目のURL書き換えが成功したら環境変数 X_IS_MAINT を設定し、二度目のURL書き換えが実行されないようにしています。

補足

  • サーバの設定によって時間が標準時(GMT+0)になってたりするので注意してください。
  • mod_rewrite公式ページの説明では、比較演算子として >=<= が使えると書いていましたが、私の環境では何故かうまく動きませんでした..
17
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?