2018.11.07

2018.11.08

ホームページ制作関連

「.htaccess」を用いて時間指定でメンテナンス画面に転送する設定方法

「.htaccess」を用いて時間指定でメンテナンス画面に転送する設定方法のアイキャッチ画像

Webサイトを運営して行く中で、新サービスの実装などでどうしてもサービスを一時的に停止する必要があります。
そう行った場合にサイト訪問者にはメンテナンス画面を表示し、その裏で実装作業などを行います。

今回は「.htaccess」を用いて、特定IP(制作者のIPなど)を除いてサイト訪問者にはメンテナンス画面を表示する設定する方法を紹介します。またこういったメンテナンスは時間指定で行うことが多いので、開始時間や終了時間の設定方法も紹介します。

「.htaccess」の記述方法

基本の記述方法

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteRule ^.*$ - [R=503,L]
</IfModule>

上記のように記述をすると、サイトへのアクセスはすべて「maintenance.html」が表示されます。

特定のIPアドレスは通常表示をする

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteCond %{REMOTE_ADDR} !=000.000.000.000
RewriteRule ^.*$ - [R=503,L]
</IfModule>

上記のように追記することで、設定したIPアドレスはメンテナンス画面には転送されずに、通常表示がされます。
上記はIPアドレスが「000.000.000.000」だった時の記述例です。

転送の開始時間

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} ">=201801011200"
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteCond %{REMOTE_ADDR} !=000.000.000.000
RewriteRule ^.*$ - [R=503,L]
</IfModule>

上記は2018年1月1日12:00になるとメンテナンスが開始します。

転送の終了時間

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} ">=201801011200"
#RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} "<=201801021500"
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteCond %{REMOTE_ADDR} !=000.000.000.000
RewriteRule ^.*$ - [R=503,L]
</IfModule>

上記は2018年1月2日15:00になるとメンテナンスが終了します。

今回紹介した組み合わせで時間指定で、特定IPを除いたアクセスをメンテナンス表示できます。
「.htaccess」の記述方法は利用するサーバーによっても異なります。必ずしも今回紹介した方法で設定できるとは限りませんが、参考にしてみてください。

SHARE

この記事の筆者

Webクリエイター 古川 徹朗

Webクリエイター 古川 徹朗

Webに関する様々な知識を身に付け、理論的な問題解決を常に目指す頭脳派クリエイター。

WEBSITE DESIGN REQUEST

ホームページ制作・リニューアルの
ご相談はお気軽に

TEL 06-6537-9941 平日 9:00〜19:00

〒550-0012 大阪府大阪市西区立売堀2-5−41

ホームページ制作を相談する