cman.jphtaccess作成
cman.jp cman.jp > よく使うhtaccess > 解説・自動作成 > 利用制限_Referer
広告
広告
広告
広告
広告
広告

htaccessによるアクセス制限(Referer)

ホームページへのアクセスを行うと、サーバーに遷移元のURL情報が送信されます。
このURL情報のことをリファラ(referer)と言います。

htaccessでリファラ(Referer)を参照することが可能なため、遷移元URLを判定しアクセス制御を行うことができます。
たとえば、画像への直接リンクを禁止したり、特定ページからのリンクを拒否するなどの設定が可能です。

ただし、リファラ(Referer)は偽装も可能なため必ず正しい情報とは限りません。

広告

Referer(遷移元情報)によるアクセス制限作成

以下で特定URLからのアクセスを制限するhtaccessを作成することができます。

【入力の意味】遷移元(リンク元)が ① の場合は、② の表示を ③ する


リファラ(遷移元)
URL
(例)「example.ne.jp」

対象ファイル
アクセス制限するファイルの拡張子を指定できます。

拒否/許可
結果表示
「リファラ(遷移元)」を最低1つは入力してください。

【注意】生成されたhtaccessは保証しておりません。必ず、動作確認を行ってからご利用ください。

遷移元URLによるアクセス制限 解説

構文例【許可】
SetEnvIf Referer "^http://www\.example\.jp" ok_url
SetEnvIf Referer "^https://www\.example\.jp" ok_url
<Files ~ "\.(gif|jpe?g|png)$">
order deny,allow
deny from all
allow from env=ok_url
</Files>
上記は次を意味しています
「http://www.example.jp」または「https://www.example.jp」で始まるURLからのアクセスのみ「.gif」「.jpg」「.jpeg」「.png」の拡張子をアクセス可能とする。
→ 画像を表示するのは自サイト「www.example.jp」のみとする。画像リンクを禁止する。
構文例【拒否】
SetEnvIf Referer "^http://www\.example\.jp" ng_url
SetEnvIf Referer "^https://www\.example\.jp" ng_url
order allow,deny
allow from all
deny from env=ng_url
上記は次を意味しています
「example.jp」からのアクセスすべて拒否する。
→「example.jp」内のリンクを拒否する。
1.「SetEnvIf」

形式 : SetEnvIf Referer [URL] [結果]

[URL]

リファラ(Referer)の条件を正規表現で指定します。

「"^http://www\.example\.jp"」を指定すると、アクセス元URLが「http://www.example.jp」で始まっているを意味します。

[結果]

リファラ(Referer)の条件に該当するときに結果が設定されます。
設定された結果は「許可(allow)」や「拒否(deny)」の判定に利用できます。

今回は「Referer」を使用していますが、「User-Agent」「Request_URI」などApacheの環境変数を指定することができます。
2.「order」

許可(allow)と拒否(deny)の判定順を指定します

例えば、「order deny,allow」の場合は、「拒否(deny)」に該当したら「許可(allow)」を判定するするため、「許可(allow)」が優先となります。

「order allow,deny」は、許可(allow)→拒否(deny)の順に判定することで、拒否を設定
「order deny,allow」は、拒否(deny)→許可(allow)の順に判定することで、許可を設定

3.「allow」

許可(allow)の条件を指定します
「allow from all」は、すべて許可を表します

「特定アクセスを拒否」する設定の場合は、「order allow,deny」を指定するため「allow from all」で一旦すべて許可を指定し、その後に拒否(deny)を指定します。

4.「deny」

拒否(deny)の条件を指定します
「deny from all」は、すべて拒否を表します

「特定アクセスを許可」する設定の場合は、「order deny,allow」を指定するため「deny from all」で一旦すべて拒否を指定し、その後に許可(allow)を指定します。

5.結果判定の指定方法

判定する[結果]は、「from」の後に「env=[結果]」で指定します。

「allow from env=[結果]」の場合、リファラ(Referer)の条件に該当する場合は「許可」
「deny from env=[結果]」の場合、リファラ(Referer)の条件に該当する場合は「拒否」

リファラ(Referer)の注意事項

リファラ(Referer)は偽装可能です。このため100%の判定とはなりません。
また、ブラウザによってはrefererを出力しないように設定できる場合もあります。

広告
QrCode
このページのURL
スマートフォン・タブレット運営:株式会社シーマン