サーバ

.htaccessで指定時間になったらメンテナンス画面を表示する

課題を持った人
課題を持った人
今度Webサーバのメンテナンスがあって、指定の時間になったらメンテナンス画面を表示したいです。さらに、指定の時間になったらメンテナンス画面からWebサイトの表示に切り替えたいです。.htaccessを使うといいと聞いたんだけど、使い方を教えてください。

こういった要望に答えます。

以下の環境で動作を確認しています。

  • サーバのOS:CentOS 7
  • Webサーバ:Apache

.htaccessについて

.htaccess(ドットエイチティーアクセス)を使うとWebサーバをディレクトリ単位で制御することができます。例えば、以下のようなことが実現できます。

  • Webサイトにアクセスがあった時にメンテナンス画面を表示する
  • 特定のIPアドレスやドメインからのアクセス制限
  • Webサイトリニューアル時のリダイレクト処理
  • ベーシック認証

.htaccessは、設置したディレクトリとそのディレクトリ配下に対して有効です。もし、.htaccessを設置したディレクトリ配下にも.htaccessが存在する場合は、配下の.htaccessの設定が優先されます。

.htaccessを使ってメンテナンス画面を表示してみよう

それでは早速、指定の時間になったらWebサイトの表示が「メンテナンス中」になるような仕組みを作っていきましょう。

以下の手順で進めます。

  1. メンテナンス中の画面(maintenance.html)を作成します
  2. .htaccessを作成します

1.メンテナンス画面を作成しよう

メンテナンス中の画面は、htmlとcssを使って以下のようなページを準備します。パソコンのデスクトップに作業フォルダ「work」を作ってその中に、maintenance.htmlというファイル名で保存しましょう。

画面の内容は以下になります。

maintenance.htmlは.htaccessの動作とは関係ないのでデザインは好きなようにアレンジしていただいて問題ありません。

.htaccessを作成しよう

つぎに、workフォルダの中に、.htaccessというファイルを作成しましょう。僕はSublime Text 3で作成しました。以下のように入力して保存しましょう。

.htaccessの内容はつぎのようにします。

.htaccessの内容を説明します。

サーバにアップロードしよう

maintenance.htmlと.htaccessが準備できたら、あとはサーバにアップするだけです。ドキュメントルート直下にmaintenance.htmlと.htaccessをアップロードしましょう。

設定に間違いがなければ、指定の時間になったらメンテナンス画面が表示されます。

筆者
筆者
以上が、.htaccessを使ったメンテナンス画面の表示方法です。Webサービスの利用者への適切な情報提供を心がけましょう。