[РЕШЕНО 99%] как запретить хотлинки на изображения с определенного сайта
на будущее - везде в htaccess перед такими знаками к примеру [NC] - должен быть один пробел, для крассоты ставять несколько, потом в логах появляется ошибку - тут коды тоже с двумя и более пробелами и мне не было времени исправлять
Теперь пустой реферер и реферер с выбраного сайта не сможет не посмотреть и не скачает по ссылке файл пока сам не зайдет на страницу ИСТОЧНИКА
RewriteEngine On #RewriteCond %{REQUEST_FILENAME} .*\.(jpeg|jpg|gif|png)$ RewriteCond %{REQUEST_URI} \.(jpeg|jpg|png|gif)$ RewriteCond %{HTTP_REFERER} ^$ [NC,OR] RewriteCond %{HTTP_REFERER} ^http://(.+\.)?плохой\.club/ [NC,OR] RewriteCond %{HTTP_REFERER} ^http://(.+\.)?плохой\.com/ [NC,OR] RewriteCond %{HTTP_REFERER} ^http://(.+\.)?плохой\.online/ [NC,OR] RewriteCond %{HTTP_REFERER} ^http://(.+\.)?плохой\.xxx/ [NC] # пропустим поисковиков с USER AGENT RewriteCond %{HTTP_USER_AGENT} !(googl|google|googlebot|bingbot|yahoo|yandex) RewriteRule .* - [F]
Все классно но не знаю как показать заглушку - вместо этого у конкурента выдает ошибку
нужно условие
если ( без рефера ИЛИ плохой сайт И картинка И полный урл И пытаемся скачать с урл на плохом сайте){ RewriteRule .*\.(jpeg|jpg|gif|bmp|png)$ [F] // картинка на прямую не посмотреть - выбрасывает на 404 // картинку не скачать // КАК СДЕЛАТЬ ЧТОБ КАЧАЛАСЬ ЗАГЛУШКА } иначе если (без рефера ИЛИ плохой сайт И картинка ){ RewriteRule .*\.(jpeg|jpg|gif|bmp|png)$ http://moi.site/zaglushka.tif // показать заглушку }
Была задача :
1 вписать сайт в черный список
2 чтоб при просмотре на нем отображались не картинки, а заглушка
3 чтоб при прямом переходе\скачивании картинки "http://example.com/kartinka.png/" срабатывал или редирект на главную, а если качает, то не изображение а заглушку?
4 запретить доступ источникам без REFERER
Знаю что такая реализация есть через REFERER, но как сделать не знаю, может кто сталкивался , ПОСОВЕТУЙТЕ !
зашел как-то в яндекс посмотреть внешние ссылки, а там уже ~10 000 ссылок на кртинки из моих галерей, причем с просмотренном и скачиваниемю и все эти ссылки только с 3 сайтов. почему бы не забанить
![]()
В будущем, сам не сделаю , буду заказывать, чтоб доступ к убитым\сжатым картинкам был у всех, а оригиналы чтоб мог скачивать только рефере моего сайта (думаю можно через кукисы реализовать). Уже такое видел , но как реализовать не знаю.
Решил п.п 1 и 2 так
RewriteEngine On RewriteCond %{HTTP_REFERER} ^http://(.+\.)?tttt\.club/ [NC,OR] RewriteCond %{HTTP_REFERER} ^http://(.+\.)?blogspot\.com/ [NC,OR] RewriteCond %{HTTP_REFERER} ^http://(.+\.)?livejournal\.com/ [NC] RewriteRule .*\.(jpeg|jpg|gif|bmp|png)$ http://i.imgur.com/qX4w7.gif [L]
как решить 3 пункт
по поводу пункта 4 — ссылки на загрузку выглядят таким образом
http:// moikonkurent.club /?d=http%3A%2F%2F moisait.com %2Fwp-content%2Fuploads%2F2016%2F07%2Fkartinka.png
вот есть правило я так понял если все совпадает то выполнится подмена, а как у себя это реализовать и чтоб менялся на пустой урл или изображение
есть ещё более грамотная запись (я так думаю)
############################### # ultimate hotlink protection # ############################### # disable directory browsing # uncomment this option to protect access to directories # Options -Indexes # enable the following of symlinks # uncomment this option if hotlink protection fails to work # Options +FollowSymLinks # verify presence of mod rewrite <IfModule mod_rewrite.c> # enable the rewrite engine RewriteEngine on # check that file exists RewriteCond %{REQUEST_FILENAME} -f # check for requested file types # include additional file types here RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g?|png)$ [NC] # allow blank referrer requests RewriteCond %{HTTP_REFERER} !^$ # allow all requests from your domain # edit the domain to match your own RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?domain\. [NC] # allow all requests from your ip address # edit the ip address to match your own RewriteCond %{HTTP_REFERER} !^https?://123\.123\.123\.123(.*)$ [NC] # additional site access # include additional sites here replace domain names and or # remove unnecessary lines or add new lines for more sites RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?domain_01\. [NC] RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?domain_02\. [NC] RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?domain_03\. [NC] # search engine access # include or remove search engines feed readers and other sites RewriteCond %{HTTP_REFERER} !search\?q=cache [NC] RewriteCond %{HTTP_REFERER} !google\. [NC] RewriteCond %{HTTP_REFERER} !yahoo\. [NC] # allow access to all requests for your anti hotlink image # to serve an image instead of delivering a 403 error # uncomment the next line and edit the path and file name # RewriteCond %{REQUEST_URI} !^/hotlink\.jpg$ [NC] # deliver the hotlink image for all requests for the listed files # protect additional file types by editing the list below # if you are serving a file instead of a 403 # uncomment the next line and edit the path and file name # RewriteRule \.(gif|jpe?g?|png)$ http://domain.tld/hotlink.jpg [R,NC,L] # return a 403 error when any of the following file types is requested # you can protect additional file types by editing the list below RewriteRule \.(gif|jpe?g?|png)$ - [F,NC,L] # close the module container </ifModule>