[Apache][.htaccess]mod_rewrite で特定の IP に対してアクセス制限する方法

Apacheのmod_rewriteを使用して、特定のIPアドレスにアクセス制限をかける方法を紹介します。

1. .htaccess ファイルを作成する

制限をかけるディレクトリに .htaccess ファイルを作成します。 .htaccess ファイルが存在しない場合は、新規に作成してください。

2. mod_rewrite を有効化する

.htaccess ファイル内で mod_rewrite を有効化します。以下のように記述します。

“`
RewriteEngine On
“`

3. 特定のIPアドレスにアクセス制限をかける

次に、特定のIPアドレスにアクセス制限をかけます。以下のように記述します。

“`
RewriteCond %{REMOTE_ADDR} ^111\.222\.333\.444$
RewriteRule ^(.*)$ – [F]
“`

上記の例では、IPアドレス「111.222.333.444」からのアクセスを禁止するようになっています。アクセス禁止の際には「403 Forbidden」が表示されます。

複数のIPアドレスにアクセス制限をかける場合は、次のように記述します。

“`
RewriteCond %{REMOTE_ADDR} ^(111\.222\.333\.444|555\.666\.777\.888)$
RewriteRule ^(.*)$ – [F]
“`

上記の例では、IPアドレス「111.222.333.444」または「555.666.777.888」からのアクセスを禁止するようになっています。

以上が、mod_rewrite を使用して特定のIPアドレスにアクセス制限をかける方法です。ただし、Apacheの設定によっては .htaccess ファイルが無効になっている場合があるので、事前に確認しておく必要があります。

[Apache][.htaccess]mod_rewrite で特定の IP に対してアクセス制限する方法

mod_rewrite を使って特定の IP のみアクセスさせる、もしくはアクセスさせないようにするには以下のようにする。

アクセスを拒否

RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.1$ [OR]
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.2$
RewriteCond %{REQUEST_URI} !^error\.html
RewriteRule .* error.html

アクセスを許可

RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.1$
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.2$
RewriteCond %{REQUEST_URI} !^error\.html
RewriteRule .* error.html