|
HTMLタグ > .htaccessを使ったアクセス制限
|
ホームページ全て、または一部のページに入れる人を制限したいという場合や、
特定のページから以外からはリンクできないようにしたい(リンク元=リファラを制限したい)場合。
CGIなどを使ってパスワード制にしたり、特定の人には表示されないようにすることもできますが、
簡単な方法があるのでそれを紹介します。
ただ、むやみに制限するなら公開する意味ってないと思うんです。
せっかく見たいと思ったのに「403エラー(アクセスの権利がありません)」とか出ると、悲しくなります。
嫌がらせなどされて本当に困った相手を拒否したいときや、
掲示板やアクセスランキングの不正アクセス、スパム投稿などを防ぎたいとき、
これで解決できると思います。
最近の不正アクセス、スパム投稿はひどいです。
不正アクセスは一度やられるとものすごい数で増えます。
CGIでアクセス拒否設定をすると、アクセスがある度にCGIが働いて、サーバの負担になります。
なので、CGIよりは負担の少ない以下の方法を薦めます。
また、スパム投稿を防ぐ掲示板は最近では多く配布されていますが、アクセス制限をするわけではないので、
その分の負担はなくせません。
不正アクセスでわけがわからなくなっているアクセス解析も、これで正常に近付けます。
ただこれ、無料のレンタルサーバでも可能なのかどうかがわかりません。
自作CGI使用可能なサーバなら多分大丈夫だと思います。
「XREA」は多分使えると思います。
有料のレンタルサーバはまず問題ないと思います。
情報をいただけるととても嬉しいです。
※画像や音声ファイルなど、HTMLファイル以外への直リンクを防ぎたいという場合は、
「特定のリファラからだけのリンクを許可する」設定をしますが、
こちらにも詳しくまとめてあるので参照して下さい。
1) テキストファイル(Winなら「メモ帳」、Macなら「TextEdit」など)に以下の内容を書き、
「.htaccess」というファイル名で保存します。
この名前で保存できない場合は、「htaccess.txt」などとしておき、
アップロード後にFTP上で名前を変更して下さい。
■特定のリファラからのアクセスを拒否する場合
SetEnvIf Referer "×××" Ref1
SetEnvIf Referer "×××" Ref2
SetEnvIf Referer "×××" Ref3
Order Allow,Deny
Allow from all
Deny from env=Ref1
Deny from env=Ref2
Deny from env=Ref3
(最後は改行を入れて下さい。)
|
×××の部分は、そこからリンクして来てほしくないページのアドレスの一部を書きます。
ここに書かれたものが一部でも含んでいれば、アクセスは拒否されます。
「www.takoten.com」とした場合、「http://takoten.com」は拒否されません。
「www.」はあってもなくても同じページになるサーバが多いので、
「www.」はない方が確実だと思います。
指定する数を変える場合は行を増減し、それに合わせて赤の数字も増減して下さい。
「Deny」から始まる下の列も数と数字を合わせて下さい。
※このファイルを置いたディレクトリ以下のすべてのページで適応されます。
特定のページだけに適応したいときは、前もってディレクトリを分けておくといいかと思います。
「Ref○」の部分は別の文字でもかまいません。
ただし半角英数字でリファラごとに違うものにし、上と下2か所に同じものを入れるようにして下さい。
※逆に特定のリファラからだけのリンクを許可する場合は、以下のように書きます。
SetEnvIf Referer "×××" Ref1
SetEnvIf Referer "×××" Ref2
Order Deny,Allow
Deny from all
Allow from env=Ref1
Allow from env=Ref2
(最後は改行を入れて下さい。)
|
■特定の人だけアクセスを拒否する場合(IPアドレス、ホストアドレス)
Order Allow,Deny
Allow from all
Deny from ×××
Deny from ×××
Deny from ×××
(最後は改行を入れて下さい。)
|
×××の部分は、IPアドレス、ホストアドレスで指定します。
ここに書かれたものが一部でも含んでいれば、アクセスは拒否されます。
例えばIPアドレス「12.345」と指定すると、「012.345.6」も「12.345.678」も拒否されます。
(数字の並び方はよく知らないので適当ですがw)
なのでIPアドレスやホストアドレスの場合は、確実に全部を指定した方がいいでしょう。
IPアドレス、ホストアドレスは混ざってもかまいません。
これは拒否したい相手のIPアドレスかホストアドレスを知らなければできませんが、
掲示板などは管理画面でどちらかを確認できると思います。
※逆に特定の人だけにアクセスを許可する場合は、以下のように書きます。
Order Deny,Allow
Deny from all
Allow from ×××
Allow from ×××
Allow from ×××
(最後は改行を入れて下さい。)
|
2) アクセス制限をしたいディレクトリに、1) で作ったファイルをアップロードします。
「.htaccess」以外のファイル名だった場合は、「.htaccess」に変更します。
これで完了です。
拒否された人がアクセスしようとすると、「403エラー」になります。
参考サイト&詳細…
XREA入段者のための小枝集>htaccess編様 /
.htaccess実践活用術様
「HTMLタグ」のトップに戻る
|
|
|