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 !((/maintenance/index¥.html)|(¥.gif)|(¥.js)|(¥.css)) /maintenance/index.html [L]
→上記IP以外の一般来訪者に表示するメンテナンス画面のURLを指定する命令
/maintenance/index¥.html
にメンテナンス画面を設置しておきます。
!((/maintenance/index¥.html)|(¥.gif)|(¥.js)|(¥.css))
この画面も転送設定をしてしまうと、
メンテンス画面表示→メンテンス画面表示→メンテンス画面表示→・・・
とループしてしまうことを防ぐ命令
2.作成した1.のファイルをサーバーの公開ルートディレクトリにアップロード
3.アップロードしたファイルを「.htaccess」にサーバー上で名前変更
※ファイル名を「.htaccess」に変更した時点で設定が有効になるので注意!!!
これで、メンテンナンス画面の設定は完了。
メンテナンス時間中、一般来訪者にはメンテナンス画面が表示され、
自分は心置きなくサイトのリニューアル作業を行うことができます。
※注意
上記はサンプルです。
あくまで自己責任において利用してください。
少し調整をしないと正しく動作しないこともあります。
