Сегодня расскажу как защитить ваш контент от скачивания ну и заодно разгрузить немного свой сервер сэкономив траффик.
Итак, имеем сервер, на котором установлен Apache2 и у него подключен модуль mod_rewrite (скорее всего подключен – у Вас ведь уже есть ЧПУ?) . Стоит задача защитить картинки от прямого скачивания, но при этом позволить поисковикам индексировать наши картинки + разрешить использование картинок на своих блогах на других блог-платформах.
Приступим!
В не легком деле защиты нам поможет файл .htaccess, расположенный в коневой директории вашего сайта. Apache2 читает этот файл при каждом обращении к сайту и выполняет все инструкции из него – добавим ему немного работы 🙂
Пусть наш сайт называется www.mysyte.com
RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://www.mysyte.com[L]
Этот код будет перекидывать всех пытающихся просмотреть ваши картинки напрямую на главную страницу сайт. В принципе вместо http://www.mysyte.com можно написать какую-то картинку или вообще выдавать 403 ошибку – выбор за вами. Пример с выдачей ошибки ():
RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule .*\.(jpe?g|gif|bmp|png)$ - [NC,F,L]
Теперь добавим в условия поисковых ботов:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_USER_AGENT} !Googlebot [NC] RewriteCond %{HTTP_USER_AGENT} !Googlebot-Image [NC] RewriteCond %{HTTP_USER_AGENT} !Mediapartners-Google [NC] RewriteCond ${HTTP_USER_AGENT} !Mediapartners [NC] RewriteCond %{HTTP_USER_AGENT} !Googlebot-Mobile [NC] RewriteCond %{HTTP_USER_AGENT} !Googlebot-Video [NC] RewriteCond ${HTTP_USER_AGENT} !Googlebot-News [NC] RewriteCond %{HTTP_USER_AGENT} !msnbot [NC] RewriteCond ${HTTP_USER_AGENT} !slurp [NC] RewriteCond %{HTTP_USER_AGENT} !Bingbot [NC] RewriteCond %{HTTP_USER_AGENT} !YandexBot[NC] RewriteCond %{HTTP_USER_AGENT} !YandexImages[NC] RewriteCond %{HTTP_USER_AGENT} !YandexImages[NC] RewriteCond %{HTTP_USER_AGENT} !YandexVideo[NC] RewriteCond %{HTTP_USER_AGENT} !YandexMedia[NC] RewriteCond %{HTTP_USER_AGENT} !YandexBlogs[NC] RewriteCond %{HTTP_USER_AGENT} !YandexCatalog[NC] RewriteCond %{HTTP_USER_AGENT} !YandexNews[NC] RewriteRule .*\.(jpe?g|gif|bmp|png)$ - [NC,F,L]
В следующем посте я расскажу как сделать аналогичную защиту на связке Nginx+Apache2
У меня это вопрос отпал после того как я перешел на другой хостинг.
Намучавшись с отечественными остановился на зарубежном.
Так вот там есть такая полезная фича защита от стыривания картинок и файлов.
(HotLink Protection)
http://secure.hostgator.com/~affiliat/cgi-bin/affiliates/clickthru.cgi?id=McDuck
Очень полезная штука в наше время
Это все делается точно также через .htaccess ))) просто там они его генерят для Вас
А почему некоторые считают, что прописывать первую строчку защиты нужно так: RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?ваш_сайт.ru.*$ [NC] или RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?ваш_сайт.ru [NC].
Ну это проверка что картинку выводите вы со своего стайта {HTTP_REFERER} – это откуда пришли за картинкой. !^http(s)?://(www.)?ваш_сайт.ru. проверка на то, что это НЕ ваш стай и запрет на доступ.
Если прописать так, как вы написали, то даже поисковики не увидят ничего на вашем сайте.
Звучит устрашающе, а на деле выглядит еще страшнее, но в конечном итоге задачу запрета Hotlink в nginx мне решить удалось. Естественно, что решение уже имелось главной проблемой было воплотить его в жизнь, ибо на сайтах сисадминов написано все настолько кратко и сжато, что у меня просто не хватало духу ринуться в пучину и начать во всем этом досконально разбираться. A как можно сделать, чтобы картинки с моего сайта на чужом сайте показывались с водяный знаком? Есть сайты, которые содержат картинки без вод. знака, но в поиске картинок Google они все с водяным знаком.Как можно такое реализовать?