特定のIPアドレスからのアクセスに対して、エラーコードを返すことで「メンテナンス中」といった表示をさせることができますが、エラーコードを返さずに別のファイルでリライトして表示させる手段を記述します。
条件は以下のとおり。
- 特定のIPアドレスからのアクセスはそのままアクセスできる
- それ以外のIPアドレスからのアクセスの場合は、別のファイルでリライトして表示する
記述例
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.1$
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.2$
RewriteRule ^index.html /demo/index_mente.html
- RewriteEngine On でリライトが使えるようにする
- 『通常通りアクセスを許可するIPアドレス』を記述します。(複数設定可能)
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.1$ - リライトルールを設定します。(複数設定可能)
- 特定のファイルをリライトする
RewriteRule ^ファイル名 リライト先のパス
ファイル名は.htaccessを置いたフォルダからの相対パスで記述します。
リライト先のパスは、ドキュメントルートからのパスか、絶対パスで記述します。 - .htaccessを置いたフォルダ以下、全てをリライトする
RewriteRule ^.$ リライト先のパス
- 特定のファイルをリライトする
なお、サーバによっては、mod_rewriteを有効にする記述をしないと動作しない場合もあります。(CPIなど)
その場合は、以下のように記述します。
記述例
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.1$
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.2$
RewriteRule ^index.html /demo/index_mente.html
</IfModule>