よくあるご質問 ご利用の注意事項 当サイトについて お問い合わせ
cman.jp > htaccess作成 > htaccess解説 > アクセス制限(Referer)
htaccess解説/アクセス制限(Referer)
ホームページへのアクセスには、遷移元の画面情報(Referer)が含まれています。
この情報のことをリファラ(referer)と言います。
(ブラウザのアドレス欄にURLを直接入力した場合などは情報は設定されていません)
htaccessでリファラを判定することで、特定画面からのみアクセス制御を行うことが可能となります。
ただし、Refererは偽装も可能なため必ず正しい情報とは限りません。
実際に付加されている情報は、当社「IPアドレス確認」サービスでご確認いただけます。
画像やjavascript、cssなどの直接アクセスを禁止する
ホームページ内の画像や外部Javascript、cssは、ブラウザにURLを入力することで、ホームページを通さずに直接参照することができます。
他のサイトからの画像リンクなどを停止したい場合にも利用することができます。
「.htaccess」ファイル
この設定で、サーバー内の画像「.gif」「.jpeg」「.jpg」「.png」をhttp://www.example.jp以外からのアクセスを拒否することが出来ます。
SetEnvIf Referer "^http://www\.example\.jp" ok_url
<Files ~ "\.(gif|jpe?g|png)$">
order deny,allow
deny from all
allow from env=ok_url
</Files>
構文 意味
SetEnvIf RefererRefererの条件を正規表現で記載します。
例は、「refererがhttp://www.example.jpで始まっている」の条件となります。
条件に該当するときに「ok_url」が真(true)となります。
ホームページ上にある画像などは、一度htmlが表示された後にホームページhtmlから自動で再度読み込みが行われます。このため、Refererにはホームページと同じURLが設定されています。
正規表現のエスケープが必要です。
Files htaccessで対象とするファイル
正規表現のエスケープが必要です。
例は、拡張子「.gif」「.jpeg」「.jpg」「.png」を対象としています
order 拒否と許可の見る順番を指定している
allow:許可する、deny:拒否する
例は、「拒否(deny)」→「許可(allow)」の順に見る
deny「拒否」する条件を指定
例は、「from all」としてすべて拒否しています。
allow 「許可」する条件を指定
例は、「SetEnvIf Referer」で指定した条件に該当しているかを判定しています。
該当する場合に「許可」となります。
【注意事項】
  • allowとdeny
    orderの順番に注意してください。上記では「すべて拒否だけどallowで指定した条件に該当する場合は許可」となります。逆にした場合、「allowで指定した条件に該当する場合は許可だけど、やっぱりすべて拒否」となり、全てのアクセスが拒否されてしまいます。
  • Referer
    Refererは偽装が可能なため正確には判定できません。このため、正常なアクセスなのに拒否する可能性があります。
その他
  • 有効の範囲
    「.htaccess」ファイルが置かれたディレクトリとその配下の全てが、アクセス制限の範囲となります。「htaccess留意事項」も合わせてご確認ください。
  • Apacheのアクセス制御詳細
    詳細につきましては、「http://httpd.apache.org/docs/2.0/ja/howto/auth.html」でご確認ください。
運営会社 : 株式会社シーマン - 個人情報保護方針
当社無料サービス : サーバー監視 - 写真・画像の加工サービス - QRコード作成 - ファイル暗号化 - ブラウザキャプチャ
Copyright (C) 2010 Cman Corporation. All Rights Reserved.