ホームページへのアクセスを行うと、サーバーに遷移元のURL情報が送信されます。
このURL情報のことをリファラ(referer)と言います。
htaccessでリファラ(Referer)を参照することが可能なため、遷移元URLを判定しアクセス制御を行うことができます。
たとえば、画像への直接リンクを禁止したり、特定ページからのリンクを拒否するなどの設定が可能です。
ただし、リファラ(Referer)は偽装も可能なため必ず正しい情報とは限りません。
以下で特定URLからのアクセスを制限するhtaccessを作成することができます。
【入力の意味】遷移元(リンク元)が ① の場合は、② の表示を ③ する |
||
① リファラ(遷移元) URL |
(例)「example.ne.jp」
|
|
---|---|---|
② 対象ファイル |
アクセス制限するファイルの拡張子を指定できます。
|
|
③ 拒否/許可 |
【注意】生成されたhtaccessは保証しておりません。必ず、動作確認を行ってからご利用ください。
形式 : SetEnvIf Referer [URL] [結果]
[URL] |
リファラ(Referer)の条件を正規表現で指定します。 「"^http://www\.example\.jp"」を指定すると、アクセス元URLが「http://www.example.jp」で始まっているを意味します。 |
[結果] |
リファラ(Referer)の条件に該当するときに結果が設定されます。 |
許可(allow)と拒否(deny)の判定順を指定します
例えば、「order deny,allow」の場合は、「拒否(deny)」に該当したら「許可(allow)」を判定するするため、「許可(allow)」が優先となります。
「order allow,deny」は、許可(allow)→拒否(deny)の順に判定することで、拒否を設定
「order deny,allow」は、拒否(deny)→許可(allow)の順に判定することで、許可を設定
許可(allow)の条件を指定します
「allow from all」は、すべて許可を表します
「特定アクセスを拒否」する設定の場合は、「order allow,deny」を指定するため「allow from all」で一旦すべて許可を指定し、その後に拒否(deny)を指定します。
拒否(deny)の条件を指定します
「deny from all」は、すべて拒否を表します
「特定アクセスを許可」する設定の場合は、「order deny,allow」を指定するため「deny from all」で一旦すべて拒否を指定し、その後に許可(allow)を指定します。
判定する[結果]は、「from」の後に「env=[結果]」で指定します。
「allow from env=[結果]」の場合、リファラ(Referer)の条件に該当する場合は「許可」
「deny from env=[結果]」の場合、リファラ(Referer)の条件に該当する場合は「拒否」
リファラ(Referer)は偽装可能です。このため100%の判定とはなりません。
また、ブラウザによってはrefererを出力しないように設定できる場合もあります。