RuCable
Защита hotlink
Защита Hotlink
Вы можете использовать в файле .htaccess директиву "SetEnvIfNoCase".
например:

Вариант номер 1.
Создайте файл .htaccess , и в нем впишите следующие функции:


################
# referer starts with your domain
SetEnvIfNoCase Referer "^http://(www\.)?your_domain.com" local_referer
# referer is empty
SetEnvIfNoCase Referer "^$" local_referer
<FilesMatch ".*">
Order Deny,Allow
Deny from all
Allow from env=local_referer
</FilesMatch>
################


Недостатком этого способа, является "нежелание сервера отдавать всю страничку сайта, в любом случае если отсутствует правильный HTTP_REFERER"., поэтому мы рекомендуем использовать только следующий пример:

Вариант номер 2.
Так же создайте файл .htaccess со следующим содержанием:


################
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([a-z0-9]+\.)?mydomain\.net [NC]
RewriteCond %{HTTP_REFERER} !friendlysite\.com [NC]
RewriteRule \.(gif|jpe?g|png)$ - [F,NC,L]
################


В этом случае, все файлы с расширением .gif .jpeg .jpg .png (указанные в RewriteRule), будут отдаваться только в случае правильной строки в браузере. Вы можете указать в строке вместо friendlysite\.com , имя домена, к которому будет разрешено отдавать эти файлы. Вместо уже упомянутых расширений, можно использовать любые другие расширения. Не забывайте ставить обратный слеш, перед точками!
//Если вы используете ПХП для защиты Ваших линков, то следующий код поможет сделать это:


if (!ereg('^http://(www\.)?your_domain.com', $SERVER["HTTP_REFERER"]) && $SERVER["HTTP_REFERER"]) !="") {
echo "hotlinking not allowed here";
exit;
}