НАЙ-ДОБРИТЕ ОБИКНОВЕНИ ПРОДУКТИ ЗА СТАРЕНЕ

Аз съм силно спам от сайтове за скрепер на изображения. Има повече от 150+ домейна, насочени към моите изображения и изпращащи нежелани връзки към моя сайт. Просто искам да предотвратя горещите връзки от тях. Просто искам да блокирам само тези конкретни сайтове.

Има ли някакво правило htaccess за предотвратяване на горещи връзки само в конкретни сайтове и разрешаване на други, което не е включено в списъка?

Използване на https://www.htaccesstools.com/hotlink-protection/

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L] 

Може да се нуждаете или не RewriteEngine on. Следващият ред позволява празен референт. Може да се наложи да разгледате вашите регистрационни файлове и по избор да премахнете този ред.

Последните два реда са месото на кода. Променете example.com на името на вашия домейн. Освен това, ако искате да добавите или премахнете повече типове изображения, можете просто да ги добавите или премахнете. Моля, не | знакът е or характер. Необходими са ви в списъка точно както ги виждате. В този случай jpg или jpeg или png или gif.

Със сигурност можете да използвате връзката по-горе, за да направите това вместо вас.

Има повече от 150+ домейна, насочени към моите изображения и изпращащи нежелани връзки към моя сайт. Просто искам да предотвратя горещите връзки от тях. Просто искам да блокирам само тези конкретни сайтове.

"150" е малко прекомерно за блокиране конкретно и това може да стане трудно да се поддържа в бъдеще. По-обичайно би било да се блокира всичко сайтове за горещи връзки, както в отговора на @ closetnoc, и просто позволяват конкретни референти както се изисква.

За да отговорите на въпроса си обаче, ако искате да блокирате само тези специфични Тогава ще ви трябва нещо като следното.

RewriteEngine On RewriteCond %{HTTP_REFERER} ^https?://referer-1\.example/ [OR] RewriteCond %{HTTP_REFERER} ^https?://referer-2\.example/ [OR] # etc... RewriteCond %{HTTP_REFERER} ^https?://referer-150\.example/ RewriteRule \.(jpe?g|png|gif)$ - [NC,F] 

Това ще трябва да върви в горната част на вашия .htaccess файл.

Не трябва да има OR флаг при последното условие, в противен случай всичко трафикът ще бъде блокиран.

The L флаг не се изисква на RewriteRule директива при използване на F флаг, се подразбира.

АКТУАЛИЗАЦИЯ: За да направите горното по-ефективно, все пак първо трябва да включите условията, които проверяват дали Реферерът е не очакваното име на хост (и по желание е не празно) - както в отговора на @ closetnoc - така че правилото се проваля рано за 99,9% от заявките.

Например:

RewriteEngine On # Fail early for all 'direct' and 'internal' requests RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example\.com # Block specific Referers... RewriteCond %{HTTP_REFERER} ^https?://referer-1\.example/ [OR] RewriteCond %{HTTP_REFERER} ^https?://referer-2\.example/ [OR] # etc... RewriteCond %{HTTP_REFERER} ^https?://referer-150\.example/ RewriteRule \.(jpe?g|png|gif)$ - [NC,F] 
  • Не съм го тествал, но може да е по-ефективно да използвам един регулярен израз: ^https?://((referer-1\.example)|(referer-2\.example)|...|(referer-150\.example))/
  • @StephenOstermiller Може би. Въпреки че мисля, че все пак бих предпочел четливостта / поддръжката на множество условия. Всъщност това може да стане значително по-ефективно, като първо се провери дали Referer е не очакваният хост (и не празен) - както е в отговора на @ closetnoc - така че да се провали рано за 99,9% от заявките. Ще актуализирам отговора си.
  • Винаги оценявам отговорите ви. Наздраве !!
  • Благодаря @closetnoc. Въпреки че осъзнавам след „актуализацията“ си, че отговорът ми става все по-подобен на вашия - което не беше моето намерение.
  • Изглежда, че гласувам много за вашите въпроси! Така че в това отношение е хубаво, че великите умове са еднакви. Наздраве !!

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?