loading_logo

海外からのアクセス制限を.htaccessでやってみた

海外からのアクセス制限を.htaccessでやってみた
スポンサーリンク

ブログを初めて間もない自分ですが、あまり見る意味ないとわかっていつつも毎日のように、いや毎分のようにGoogleアナリティクスのアクセス数を気にしてしまっています。
ほぼ誰にもみられていない状態です。

が、今日急にアクセス数が増えてました。

ん?でもこれ全然セッション継続時間ないんですけど。。。。
ということで、ユーザーを言語別で見ると「en-us」。そういうことですか。
海外からの招かねざる客でした。

ということで、まだやっていなかった海外からのアクセス制限をしようと思います。
アナリティクスでフィルターかけるのもいいんですが「not set」を全消ししてしまうのが少々嫌だったのでこれはまた次の機会に。
今回は「.htaccess」でアクセス制限をします。

スポンサーリンク

注意しなきゃいけないこと

海外からのアクセスを全部制限しちゃうとGoogleやらYahooやらBingやらの検索エンジンのbotまで制限されちゃってそもそもクロールされなくなってしまうので、それは忘れずに除外しなきゃいけません!
また、そもそも海外からのアクセスが全てスパムとは限りません。
海外在住の日本人だったり、海外在住の日本に興味がある外国人だったりとしっかりとしたユーザーである可能性もあります。
または、日本人や国内企業が日本へ割り当てられたIPアドレスを使用しているとは限りません。
そういったリスクを承知の上でアクセス制限を行いたい場合は、自己責任でお願いします。

アクセス制限する手順

.htaccessに書き込むフローはこんな感じです。

  1. GoogleやYahooのbotを許可する
  2. すべてのIPアドレスによるアクセスを拒否する
  3. 日本国内で使われているIPアドレスのみアクセスを許可する

1.検索エンジンのbotを許可

これをやらなきゃもう本当に自己満足で書くだけの誰にも読まれないブログになっちゃので必ず書き込みましょう!

SetEnvIf User-Agent “Googlebot” allowbot
SetEnvIf User-Agent “Slurp” allowbot
SetEnvIf User-Agent “bingbot” allowbot

2.すべてのIPアドレスによるアクセスを拒否する

続いて一旦日本も海外も関係なく全てのIPアドレスのアクセスを拒否っちゃいましょう。
コードは3で一緒に紹介します。

3.日本で使われているIPアドレスのみアクセスを許可する

で、最後にこれですね。ただ全てのIPってなんやねんって話なので、下記サイトよりhtaccessをダウンロードして、コピペしましょう。かなり膨大になりますので。

日本国外からのアクセスを制限する.htaccess

「1.検索エンジンのbotを許可」のコードと、ダウンロードしたhtaccessのコードを.htaccessに追加したらサーバーにアップロードして終了です。

 

COMMENT