メンテナンス画面の表示

Webサイトをリニューアルオープンする際、 よく下記のようなページが表示されているサイトがあると思います。


申し訳ございません。 10:00~18:00の間、ホームページのメンテナンスを行っております。

メンテナンス終了時間後に改めてアクセスお願いいたします。

これは、「.htaccess」というファイルを使うことにより便利に行うことができます。 単純にサイトのトップページを上記に変更することでももちろん可能です。

今回紹介する内容は、Web制作者に取ってもっと便利に行える方法です。 例えば次のようなことが可能です。

・トップページ以外の全階層どこにアクセスしても、メンテナンス画面を表示 ・特定のIPアドレスの人だけ、メンテナンス画面ではなく通常ページを表示 ※自身がメンテナンス作業をするのに、更新されるサイトが見えない中で行うのはリスクが高く、それを解消できます。

昨年末からサイトリリースが何回かあり、 この対応を行ったので紹介しておきます。

【可能条件】 ・FTPSFTP、管理画面などから、サーバーにファイルのアップロードが可能 ・サーバーで「.htaccess」の利用が可能 ・「.htaccess」で使用する「mod_rewrite」が使用可能

【手順】

1.以下のコードを記載した「.htaccess」という名前でファイルを作成 ※注意として、Windowsでは「.」の前にファイル名がないと作成できない。そのため、「a.htaccess」というような形で作成

RewriteEngine on RewriteCond %{REMOTE_ADDR} !^(192¥.168¥.0¥.xx1)$ RewriteCond %{REMOTE_ADDR} !^(192¥.168¥.0¥.xx2)$ RewriteRule !((/maintenance/index¥.html)|(¥.gif)|(¥.js)|(¥.css)) /maintenance/index.html [L]

【解説】

RewriteEngine on →「mod_rewrite」という機能を有効にしますよという命令

RewriteCond %{REMOTE_ADDR} !^(192¥.168¥.0¥.xx1)$ RewriteCond %{REMOTE_ADDR} !^(192¥.168¥.0¥.xx2)$ →サーバーでこのIPアドレス以外からのアクセスに「mod_rewrite」機能を使いますよという命令 「192¥.168¥.0¥.xx1」「192¥.168¥.0¥.xx2」というのが、 メンテナンス画面を表示させたくない接続元のIPアドレス これにより、一般のサイト来訪者にはメンテナンス画面を表示し、 自身(リニューアルするファイル等をアップする作業者)は、リニューアル後のページを確認可能。

RewriteRule !*1 /maintenance/index.html [L] →上記IP以外の一般来訪者に表示するメンテナンス画面のURLを指定する命令 /maintenance/index¥.html にメンテナンス画面を設置しておきます。

!*2

この画面も転送設定をしてしまうと、 メンテンス画面表示→メンテンス画面表示→メンテンス画面表示→・・・ とループしてしまうことを防ぐ命令

2.作成した1.のファイルをサーバーの公開ルートディレクトリにアップロード

3.アップロードしたファイルを「.htaccess」にサーバー上で名前変更 ※ファイル名を「.htaccess」に変更した時点で設定が有効になるので注意!!!

これで、メンテンナンス画面の設定は完了。 メンテナンス時間中、一般来訪者にはメンテナンス画面が表示され、 自分は心置きなくサイトのリニューアル作業を行うことができます。

※注意 上記はサンプルです。 あくまで自己責任において利用してください。 少し調整をしないと正しく動作しないこともあります。

*1:/maintenance/index¥.html)|(¥.gif)|(¥.js)|(¥.css

*2:/maintenance/index¥.html)|(¥.gif)|(¥.js)|(¥.css