WEBサイトのメンテナンス作業時に、.htaccessで特定のIPアドレス以外のアクセスがあればメンテナンス画面を表示させる、という方法について紹介させていただきます。
特定のIPアドレス以外のアクセスはメンテナンス画面へリダイレクト
今回はメンテナンスページの用意から.htaccessの記述方法まで、順を追って紹介させていただきます。①maintenance.htmlの用意
まずはメンテナンスページのファイル(例:maintenance.html)をサーバーにアップします。②サーバーのフルパスの調査
次にサーバーのフルパスを調べます。レンタルサーバーでフルパスが分からない場合は、fullpath.phpなどの名称でPHPファイルを用意して、
1 2 3 |
<?php echo __FILE__; ?> |
上記のコードを書いてからサーバーにアップします。
サーバー上のfullpath.phpにアクセスするとフルパスが表示されますので、それを控えておきます。
③.htaccessファイルの用意
最後に、以下のコードを書いた.htaccessファイルを用意します。
1 2 3 4 5 6 |
ErrorDocument 503 /maintenance.html RewriteEngine On RewriteCond %{REQUEST_URI} !=/maintenance.html RewriteCond %{REMOTE_ADDR} !=192.168.0.1 RewriteRule ^.*$ - [R=503,L] |
1行目と4行目は、①で用意したメンテナンスページのパスを指定します。
ここに記載するパスは、②で調べたフルパスの中でホスト名を除いたパスになります。
※フルパスをそのまま指定してもメンテナンスページへリダイレクトしないので、注意が必要です。
続いて5行目では、WEBサイトへのアクセスを許可するIPアドレスを指定します。
これにより、5行目で指定したIPアドレス以外のアクセスについては、maintenance.htmlのメンテナンスページが表示されるということになります。
IPアドレスを複数指定したい場合は、.htaccessは以下のような記述となります。
1 2 3 4 5 6 7 8 9 |
ErrorDocument 503 /maintenance.html RewriteEngine On RewriteCond %{REQUEST_URI} !=/maintenance.html RewriteCond %{REMOTE_ADDR} !=192.168.0.1 RewriteCond %{REMOTE_ADDR} !=192.168.0.2 RewriteCond %{REMOTE_ADDR} !=192.168.0.3 RewriteCond %{REMOTE_ADDR} !=192.168.0.4 RewriteRule ^.*$ - [R=503,L] |
.htaccessファイルをサーバーにアップして、指定のIPアドレスの時は平常通りWEBサイトが表示できるかどうか、また指定のIP以外のアクセスの場合はメンテナンス画面が表示されるかどうかを確認します。
コメント