外国からのアクセスを制限する方法 | .htaccessファイルについて

access_image00

.htaccessファイルを使用した海外からのアクセス制限についてです。.htaccessファイルの編集保存アップロード先注意点などを備忘録としてメモしておきます。

アクセス制限のきっかけは、ページも少ない公開したてのサイトに、外国(一国のみ)から長時間のアクセスがあるなど、不審な感じがしたので一時的にアクセスできないようにしました。

方法自体は簡単ですが、サーバー事情や注意する点もあるので、参考にされる場合は自己責任でお願いします。

スポンサーリンク

.htaccessとは?

.htaccessファイルとは、ユーザー認証アクセス制限を施したり、自動転送を設定したり様々な用途があります。

.htaccessを確認してみよう!

サーバの公開フォルダの中に「.htaccess」という設定ファイルがあるか探してみましょう。

.htaccessファイルのある場所は、index.htmlかindex.phpと同じ階層が多いのですが、ルートとしているフォルダから順に階層ごとに探していくと見つかるでしょう。詳しくは後ほど「.htaccessファイルの設置場所」で。

もし.htaccessファイルがない場合でも、作成してから設置できる場合もあります。
※サーバーやシステムの都合上、設定できない場合もあります。

.htaccessファイルを編集するソフト

準備として、編集する際のソフトは書式情報を含まない「プレーンテキスト」で保存できるテキストエディタを用意します。Windowsだと「TeraPad」や「NoEditor」などがおすすめです。

編集時の注意点

編集時の注意点は、すべて半角。全角が交じるとエラーになってしまいます。

全角が交じっていた為、検索エンジンのbotまでアクセス制限してしまうこともあります。検索結果にWebサイトの情報が表示がされなくなって、アクセスがガクっと減少…とならないよう注意が必要です。

.htaccessの記述方法

外国からのアクセスを制限する方法
画像をクリックすると拡大表示します。

作業としては、まずAPNICから「日本に割り当てられているIPアドレスリスト」を取得します。

こちらの.htaccessを入手できるサイトからをダウンロードします。

ダウンロードした.htaccessをテキストエディターで開くと…長い!

order deny,allow
deny from all

allow from 1.0.16.0/20
allow from 1.0.64.0/18
allow from 1.1.64.0/18
allow from 1.5.0.0/16

1行目:制限→許可の順で実行
2行目:すべて制限
3行目以降:(以下の)IPアドレスを許可
と言った内容になっています。

この状態だと検索エンジンもシャットアウトしているので、
上記コードの前に、検索エンジン(グーグル、MSN、Yahoo、bing)のbotのアクセスを許可する下記のコードを追記します。

SetEnvIf User-Agent "Googlebot" allowbot
SetEnvIf User-Agent "msnbot" allowbot
SetEnvIf User-Agent "Slurp" allowbot
SetEnvIf User-Agent "bingbot" allowbot

編集は以上です。

.htaccessファイルの保存方法

保存する際の形式は、一切の書式情報を含まないテキスト形式(プレーンテキスト)で保存する必要があります。

保存形式は UTF-8 BOM無し
改行コードは、エラーが起きるようでしたら「LF」にするのが無難です。

ファイル名は「.htaccess」。拡張子はつきません。
「.」から始まるので、保存やアップロードができない場合は、とりあえず「htaccess」としておいてアップロード後にファイル名を変更します。

.htaccessファイルの設置場所

.htaccessファイルの設置場所(アップロード先)は、目的によってかわりますが、.htaccessファイルの効果は設置したディレクトリとそれ以下の全ディレクトリになります。

公開フォルダの直下にアップロードすれば全ディレクトリに有効に。限定したい場合は、特定のディレクトリにアップします。
それぞれのディレクトリに複数.htaccessファイルを設置する方法も可能です。

ひとこと

IPアドレスの制限をすることで、海外からのアクセスを100%シャットアウトできるわけではありませんが、効果はあるのでセキュリティー管理の一環として様子を見ていこうと思います。

サーバによっては、機能制限がかかっていて、エラーが起きたり効果がなかったりすることもあります。その時は、お使いのサーバのヘルプドキュメントなどを確認してみて下さい。

※エラーが起きることでアクセスに大きな影響がでるサイトの場合は、支障のないサイトでお試しをするなどのテストをおすすめします。

◇ アクセス制限をしないで海外にいる日本人にサイトも見てもらいたいが、google analyticsのデータに海外の不正アクセスが入ると正確なデータがわからなくて困る。

という場合は、
外国からのアクセスを制限・除外する方法 | Google Analytics
をご覧ください。

  • スポンサーリンク
  •  

関連記事

コメントを残す

メールアドレスが公開されることはありません。名前・コメント・画像認証が必須となっています。


*