2011-08-08 10 views

答えて

2

上で直接閲覧

<img src="http://example.com/img.jpg"> 

VS

ユーザーあなたはリファラをチェックすることができますが、これは100%正確ではありません。

ユーザーはリファラーを偽装することができ、プロキシまたはユーザー設定はそれを削除または変更できます。

+0

議論のために、ホットリンクされたサイトのコードがであったとし、それをクリックしたユーザーがリファラーを持つとします。とにかく、その特定のシナリオで2つのケースを区別するには? – imgguy

+0

また、私はあなたがホットリンクが参照者を残さないということを推測しています。 – imgguy

+2

@imgguy Hotlinkingはあなたのサイトと一致しない参照を与えることができます。 – alex

5

あなたのサーバーは、通常、ドメイン上の画像を見ているユーザーと、画像をホットリンクする別のドメインの違いを伝えることができます。

ホットリンクを停止して直接閲覧できる通常の解決策は、.htaccessです。Apacheがイメージファイルをドメインに配信し、イメージファイルを他のドメインに配信しないようにします。

あなたのイメージはあなたのドメイン上にあるため、あなたのイメージファイルに直接行くことができますが、あなたのイメージは別のドメインのイメージタグで使用できませんでした。

だから、どこかのようなものだろうあなたの.htaccessに:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC] 
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L] 

をあなたは.htaccessのこれらの行を作成するのに役立ちますonline toolsがあります。

もちろん、この制限は必要ありません。ホットリンクは一般的に許可できますが、ホットリンクは「トラブルドメイン」からのみ制限できます。

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC] 
RewriteRule \.(gif|jpg)$ http://www.yourdomain.com/hotlink.jpg [R,L] 

.htaccessexamples:以下の場合はhttp://www.yourdomain.com/hotlink.jpg -

さらに、代わりにストーピングのホットリンクの、あなたは熱いリンカーご希望ならば、Apacheは代わりに、彼らが要求した画像の、画像を提供するために取得することができます。

+0

詳細な応答をありがとう。ホットリンクを完全に許可したい。私はホットリンクとhtaccess経由の実際のユーザー訪問を区別する方法を理解しようとしています。 – imgguy

+0

十分なログがまだログに保存されていないかどうかを確認する必要があります。そうでなければ、ログを設定する必要があります。これはすべてPHPではなく、Apacheのものです。 –

関連する問題