Одним із способів знищити пропускну здатність свого сайту та сповільнити його завантаження є відсутність захисту від хотлінкінгу.
❓ Що таке хотлінкінг?
Хотлінкінг (hotlinking) — це вставка файлу (зазвичай зображення) з іншого сервера без дозволу власника. Іншими словами, сайт A використовує ресурс із сайту B, витрачаючи його трафік.
Чому це проблема?
Сайти можуть хотлінкувати файли з твого сервера з різних причин — від безневинних до шкідливих:
- Оновлюваний файл — наприклад, логотип або банер, що змінюється.
- Крадіжка контенту — сайт використовує твої зображення, не завантажуючи їх на свій сервер.
- Зловмисний трафік — використання чужого хостингу для економії своїх ресурсів.
Тому варто запобігати такій ситуації!
🛑 Блокування всіх хотлінкерів
Щоб заборонити всім сайтам хотлінкувати зображення, окрім твого:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com(/)?.*$ [NC]
RewriteRule .*\.(gif|jpe?g|png|webp)$ [F,NC]
Що це робить?
RewriteEngine on
— увімкнення модуля перезапису (mod_rewrite
).RewriteCond %{HTTP_REFERER} !^$
— дозволяє завантаження для користувачів без HTTP_REFERER.RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com(/)?.*$ [NC]
— дозволяє доступ лише з твого домену.RewriteRule .*.(gif|jpe?g|png|webp)$ [F,NC]
— блокує доступ (F
= Forbidden) до зображень.
Дозволяємо лише конкретним сайтам
Якщо хочеш дозволити завантаження тільки для партнерських сайтів:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com(/)?.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?friend1domain\.com(/)?.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?friend2domain\.com(/)?.*$ [NC]
RewriteRule .*\.(gif|jpe?g|png|webp)$ [F,NC]
Тут тільки friend1domain.com та friend2domain.com можуть використовувати твої зображення.
Відображення кастомного зображення
Якщо ти хочеш відправляти зловмисникам інше зображення замість справжнього, наприклад "stop-stealing-my-images.jpg"
:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com(/)?.*$ [NC]
RewriteRule .*\.(gif|jpe?g|png|bmp)$ /images/stop-stealing-my-images.jpg [L,NC]
Тепер усі, хто хотлінкує твої зображення, отримають заміну замість оригінального контенту.
🔐 Захист інших файлів
Хотлінкінг можливий не тільки для зображень, а й для файлів CSS, JS, PDF та інших.
Щоб обмежити доступ до CSS, JavaScript і PDF, використовуй це правило:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com(/)?.*$ [NC]
RewriteRule .*\.(css|js|pdf)$ [F,NC]
Це заборонить підвантажувати твої стилі, скрипти та документи на інших сайтах.
✅ Коли .htaccess
і mod_rewrite
актуальні?
- Якщо твій сайт працює на Apache (багато shared-хостингів і VPS використовують Apache).
- Якщо ти не використовуєш CDN або твоя CDN не має власного захисту від хотлінкінгу.
- Якщо тобі потрібно гнучке керування доступом до зображень (наприклад, дозволяти доступ тільки для певних сайтів).
⚠️ Коли .htaccess
може бути не найкращим рішенням?
- Сучасні CDN (Cloudflare, Fastly, BunnyCDN) можуть блокувати хотлінкінг самостійно
- Наприклад, у Cloudflare можна увімкнути “Hotlink Protection” без додаткових правил.
- Якщо ти використовуєш Cloudinary або Imgix для зображень, у них теж є вбудовані обмеження.
- Якщо твій сайт працює на Nginx
.htaccess
не працює на Nginx, тому тобі потрібні окремі правила дляnginx.conf
:location ~* \.(gif|png|jpe?g)$ { valid_referers none blocked yourdomain.com *.yourdomain.com; if ($invalid_referer) { return 403; } }
- Сайти, що використовують S3 та інші об’єктні сховища
- У Amazon S3, DigitalOcean Spaces є власні методи обмеження доступу.
🔥 Чи варто включати .htaccess
блокування у 2025 році?
- Так, якщо твій сайт працює на Apache і у тебе немає іншого захисту (наприклад, Cloudflare або CDN).
- Так, якщо ти хочеш гнучко керувати дозволами для конкретних доменів.
- Якщо у тебе CDN або Nginx — краще використовувати їхні налаштування.
🏁 Висновок
- Хотлінкінг витрачає трафік твого сайту, що може сповільнити його роботу
.htaccess
дозволяє легко блокувати хотлінкінг зображень, стилів, скриптів та інших файлів- Можна не тільки забороняти але й замінювати хотлінковані зображення на власні.
- Регулярно перевіряй логи сервера щоб знайти можливі випадки хотлінкінгу.
Не дозволяй іншим красти твій контент!