Как да забраним "hot linking" към сайта си?

Здравейте, в следващите няколко реда ще рагледаме какво е "hot linking" и как може да го забраните за сайта си.

“Hot linking” това е, когато друг сайт използва изображения, хоствани на вашият. Например a.com има много добри снимки. Тогава b.com решава, че вместо да качва изображенията на своя уеб хостинг сървър, може просто да направят връзки към изображенията, хоствани на уеб сървъра на a.com.

“Hot linking” може да се разглежда като кражба на съдържание и трафик, за сайта където са хостнати снимките. Сайтът b.com ще спести от своя трафик, защото ще зарежда изображенията от сайта a.com и ще хаби от неговият трафик.

Така, че е добра практика да предотвратявате “hot linking“ за сайтовете си.
Можете да предотвратите “hot linking” на вашите снимки чрез създаване на
*.htaccess* файл със следното съдържание:

RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://([^.]+.)?your-domain.com/.*$ [NC] RewriteRule .(jpe?g|gif|bmp|png)$ - [F,NC,L]

Горният код ще показва счупен образ, когато е снимката е “hot link”-ната, като ще разреши вашият домейн и всички суб-домейни. Този пример работи за GIF, JPG и файлове PNG, но можете да добавите и други разширения. Ако поставите *.htaccess файла в главната папка на вашия сайт(DocumentRoot), той ще забрани “hot linking**”*-a за целият ви сайт.

За да блокирате други типове файлове, просто добавете тяхното разширение в списъка по-горе. Например, за да блокира видео файлове:

RewriteRule .(mov|avi|wmv|mpe?g)$ - [F,NC,L]

Добре, сега сме забранили “hot linking” за целият ни сайт. Ами ако искаме да го разрешим за дадена директория на пр.: icons/ - Лесна работа! Нужно е просто да създадем във въпросната папка файл .htaccess, който автоматично ще стане приоритетен за тази папка и Apache ще вземе него за водещ, когато се опитва да доства файлове в папката. Този файл трябва да съдържа правило презаписващо правилата от основният .htaccess. Ето пример:

RewriteEngine on RewriteRule ^.*$ -

Ако имате повече от един домейн и желаете да разрешен “hot linking” по между им и техните под домейни е нужно за всеки домейн да добавите ред като този:

RewriteCond %{HTTP_REFERER} !^http://([^.]+.)?your-domain.com/.*$ [NC]

Като съответно го добавяте на правилното место в файла и резултата трябва да е подобен на този:

RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://([^.]+.)?your-domain.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://([^.]+.)?your-second-domain.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://([^.]+.)?your-third-domain.com/.*$ [NC] RewriteRule .(jpe?g|gif|bmp|png)$ - [F,NC,L]

Ако искате вместо "403 Forbidden", когато смика е "hot link"-ната да показвате някакво изображение на което пр. пише "Direct linking not premitted" може да замените реда:

RewriteRule .(jpe?g|gif|bmp|png)$ - [F,NC,L]

Със следният:

RewriteRule .*.(jpe?g|gif|bmp|png)$ http://i206.photobucket.com/albums/bb264/waveflux_bucket/nohotlink.png [L]

Превенцията на “hot linking” е базирана на *Apache модул, наречен **ModRewrite***. Така, че вашият уеб хостинг сървър трябва да го поддържа, за да можете да използвате това на вашия сайт.Надявам се тази статия да ви е била полезна и да сте разбрали основните принципи за забрана на “hot linking”.

Етикети: #htaccess [#modrewrite](https://www.icn.bg/bg/blog/?tag=modrewrite){: .tag-link} #zabrana-za-hot-link #hot-link-na-snimki #hot-linkin #prevent-hot-link #hot-link