特定の参照元からのアクセスを禁止する

特定参照元からのアクセスを禁止するのは、たとえば特定の検索サイトからリンクをたどってアクセスをさせないときなどに役立つ。


htaccessを書く http.confで指定するのもOKだが、多くの場合、.htaccessを使うのが楽だろう。こちらの方法を紹介する。
内容は以下の通り

ErrorDocument 403 /reason-403.html
SetEnvIf REFERER "^http://.*\.example\.com/" target_1
order allow,deny
allow from all
deny from env=target_1

以下、ErrorDocument の記述について、SetEnvIfの記述について説明を行う。
ErrorDocument これは、アクセス禁止となった場合に表示するファイルを指定している。ここでは"reason-403.html"というファイルである。ここに「なぜ、あなたがアクセス禁止となっているのか」の説明を書いておく。この場合「あなたはexample.comからのリンクからこのページにやってきましたが、残念ながらexample.comからのリンクは拒絶しています。なぜならば....」という具合に親切に書いておくと良いだろう。たぶん、技術的な理由からではなく、あなたがこのようなアクセス禁止をするに至った理由があるはずである。
SetEnvIf SetEnvIfは、その次の条件で環境変数のような役目を果たすターゲットが有効になる。この記述の場合、先頭から"http://任意の文字列.example.com/"というパターンが現れることを想定している。ただし、これも万能ではなく、たとえば逆引きできないIPアドレスだったりすると困る。


SetEnvIf <空白>REFERER <空白> 正規表現 <空白> ターゲット名


キーワード: htaccess アクセス制御 ウェブサイトへのアクセス アクセス禁止 リンク禁止 


目次へ

すずきひろのぶ hironobu -at- h2np -dot- net 更新日: