Webサイトをリニューアルオープンする際、 よく下記のようなページが表示されているサイトがあると思います。
申し訳ございません。 10:00~18:00の間、ホームページのメンテナンスを行っております。
メンテナンス終了時間後に改めてアクセスお願いいたします。
これは、「.htaccess」というファイルを使うことにより便利に行うことができます。 単純にサイトのトップページを上記に変更することでももちろん可能です。
今回紹介する内容は、Web制作者に取ってもっと便利に行える方法です。 例えば次のようなことが可能です。
・トップページ以外の全階層どこにアクセスしても、メンテナンス画面を表示 ・特定のIPアドレスの人だけ、メンテナンス画面ではなく通常ページを表示 ※自身がメンテナンス作業をするのに、更新されるサイトが見えない中で行うのはリスクが高く、それを解消できます。
昨年末からサイトリリースが何回かあり、 この対応を行ったので紹介しておきます。
【可能条件】 ・FTP、SFTP、管理画面などから、サーバーにファイルのアップロードが可能 ・サーバーで「.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」に変更した時点で設定が有効になるので注意!!!
これで、メンテンナンス画面の設定は完了。 メンテナンス時間中、一般来訪者にはメンテナンス画面が表示され、 自分は心置きなくサイトのリニューアル作業を行うことができます。
※注意 上記はサンプルです。 あくまで自己責任において利用してください。 少し調整をしないと正しく動作しないこともあります。