[РЕШЕНО 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>