.htaccessで特定のIPアドレス以外からアクセスされたらリライトして表示する

| コメント(0) | トラックバック(0)

特定の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
  1. RewriteEngine On でリライトが使えるようにする
  2. 『通常通りアクセスを許可するIPアドレス』を記述します。(複数設定可能)
    RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.1$
  3. リライトルールを設定します。(複数設定可能)
    • 特定のファイルをリライトする
      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>

このブログ記事について

このページは、takenakaが2011年2月 1日 14:20に書いたブログ記事です。

ひとつ前のブログ記事は「フォーラム(掲示板)の利用規定の意義は?」です。

次のブログ記事は「iPhone4(iOS4.2.1)にデフォルトでインストールされているフォント」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ