Типовая задача на mod_rewrite

12
[Удален]
1330

Что-то я торможу. Не получается решить типовую задачу.

Надо не дать ставить на других сайтах прямые ссылки на картинки, находящиеся на моем. Т.е. чтоб тег <img src="http://mysite.ru/pic.jpg"> не выдавал pic.jpg, если не на моем сайте стоит.

С одной стороны понятно - смотреть, если реферер не с моего сайта:

RewriteCond %{HTTP_REFERER} !^(.+)\.mysite.ru(.*)$

Но, я еще хочу, чтоб если рефере пустой, то картинка все же отдавалась. Вот с этим загвоздка. Помогите решить.

dkameleon
На сайте с 09.12.2005
Offline
386
#1

другими словами антилич.

У меня это реализовано приблизительно следующим образом:

# antileech

<IfModule mod_rewrite.c>

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mysite.ru [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?(images\.)?yandex.ru [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?(images\.)?google.ru [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?(images\.)?google.com [NC]

RewriteCond %{REQUEST_URI} !^/leecher.jpg [NC]

RewriteRule \.(gif|jpg|jpeg|png)$ http://mysite.ru/leecher.jpg [R,NC]

</IfModule>

Дизайн интерьера (http://balabukha.com/)
[Удален]
#2

Не работает этот вариант :( Хотя по идее должен

dkameleon
На сайте с 09.12.2005
Offline
386
#3

у меня прекрасно работает :)

Проверьте настройки фаервола и кеширование.

Lor
На сайте с 28.05.2004
Offline
352
Lor
#4

Могу еще посоветовать отдавать картинку, но свой логотип накладывать на нее. Бесплатная реклама. :)

Йопез - форум без модераторов. https://yopez.com
[Удален]
#5

Гм... У меня при пустом реферере тоже блокирует, а по условию задачи не должен.

Zuzle
На сайте с 26.05.2006
Offline
39
#6
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://mysiteurl/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://mysiteurl$ [NC]
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$|.*[Pp][Nn][Gg]$ http://zuzle.info/scripts/images/logo.jpg [R,L]

вот еще вариант, если рефер не ваш сайт, то показывает http://zuzle.info/scripts/images/logo.jpg

http://zuzle.name/ (http://zuzle.name)
dkameleon
На сайте с 09.12.2005
Offline
386
#7

тогда попробуем поиском :)

http://www.google.com/search?q=htaccess+hotlink

например:

http://altlab.com/htaccess_tutorial.html

http://underscorebleach.net/jotsheet/2004/06/htaccess-prevent-hotlinking

http://www.splintered.co.uk/experiments/52/

или разные генераторы, в том числе и хотлинк протекшена:

http://www.htaccesstools.com/

помоему как раз этим я свой и создавал :)

[Удален]
#8

Это все зашибись, конечно. И в Гугле написано. Но вот на практике при пустом реферере не работает и все - блокирует картинку. Не могу понять почему.

dkameleon
На сайте с 09.12.2005
Offline
386
#9

Хм... а как ты определяешь, что реферер действительно пустой? :)

[Удален]
#10

echo $_SERVER['HTTP_REFERER'];
Даже по смыслу, если на страницу перейти не по ссылке, а из закладок браузера или просто набрать урл руами - реферер должен быть пустой.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий