ป้องกัน Hotlink Protection บน Hosting

หยุดให้เว็บไซต์อื่นขโมย Bandwidth ของคุณโดยการฝังรูปภาพโดยตรง ตั้งค่าได้ทั้งผ่าน cPanel และ .htaccess

ป้องกัน Hotlink Protection บน Hosting

Hotlink คืออะไร และเสียหายอะไร?

Hotlinking หรือ Direct Linking คือการที่เว็บไซต์อื่นนำ URL รูปภาพหรือไฟล์จากเซิร์ฟเวอร์ของคุณไปฝังในหน้าเว็บตัวเอง เมื่อผู้เยี่ยมชมเว็บนั้นโหลดหน้า เซิร์ฟเวอร์ของคุณจะต้องส่งไฟล์ให้ทั้งที่คุณไม่ได้ประโยชน์อะไรเลย

ผลเสียของ Hotlinking ที่เกิดขึ้น:

ตั้งค่าผ่าน cPanel Hotlink Protection

วิธีนี้ง่ายที่สุดสำหรับผู้ใช้ทั่วไป:

  1. ล็อกอิน cPanel แล้วไปที่หัวข้อ Security
  2. คลิก Hotlink Protection
  3. คลิก Enable
  4. กรอก URL ที่อนุญาต (Allow Access) เช่น https://yoursite.com และ https://www.yoursite.com
  5. ระบุนามสกุลไฟล์ที่ต้องการป้องกัน เช่น jpg,jpeg,png,gif,webp,pdf,mp4
  6. เลือกว่าจะ Redirect ไปยัง URL ใดเมื่อตรวจพบ Hotlink (เช่น หน้า Error หรือโลโก้ลายน้ำ)
  7. คลิก Submit

ตั้งค่าผ่าน .htaccess (วิธีละเอียดกว่า)

การตั้งค่าผ่าน .htaccess ให้ควบคุมได้มากกว่า เพิ่มโค้ดนี้ในไฟล์ .htaccess ที่ Root ของเว็บ:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?yoursite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^https://(www\.)?trustedsite\.com/ [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp|svg|mp4|pdf)$ - [F,NC]

อธิบายแต่ละบรรทัด:

อนุญาต Domain บางโดเมน

ถ้าต้องการให้ Partner หรือ CDN บางรายเข้าถึงรูปได้ ให้เพิ่ม RewriteCond สำหรับแต่ละโดเมน:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?yoursite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^https://(www\.)?cdn-partner\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^https://googleusercontent\.com/ [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ /images/hotlink-blocked.png [L,NC]

เปลี่ยนจาก [F] เป็น Redirect ไปยังรูป Placeholder เพื่อแสดงข้อความแทน

ทดสอบด้วย curl -e

หลังตั้งค่าแล้ว ทดสอบว่าทำงานถูกต้องด้วย curl โดยจำลอง Referer จากเว็บอื่น:

# ทดสอบว่าเว็บอื่น Hotlink ไม่ได้ (ต้องได้ 403)
curl -I -e "https://badsite.com/" https://yoursite.com/images/photo.jpg

# ทดสอบว่าเว็บตัวเองยังเข้าได้ปกติ (ต้องได้ 200)
curl -I -e "https://yoursite.com/" https://yoursite.com/images/photo.jpg

# ทดสอบ Direct Access (ต้องได้ 200)
curl -I https://yoursite.com/images/photo.jpg

ตรวจสอบว่า Hotlink Protection ทำงานถูกต้อง

# ทดสอบ Hotlink จากภายนอก — ต้องได้ HTTP 403
curl -s -o /dev/null -w "%{http_code}" \
  -e "https://competitor.com/" \
  https://yoursite.com/images/hero.jpg

# ทดสอบเว็บตัวเอง — ต้องได้ HTTP 200
curl -s -o /dev/null -w "%{http_code}" \
  -e "https://yoursite.com/page.html" \
  https://yoursite.com/images/hero.jpg

# ดู .htaccess ปัจจุบัน
cat /home/username/public_html/.htaccess
Tip: หากใช้ Cloudflare ให้เปิด Hotlink Protection ใน Cloudflare Dashboard ด้วย (Scrape Shield → Hotlink Protection) เพราะ Cloudflare อยู่หน้า Server และสามารถบล็อกได้ก่อนถึง .htaccess

แก้ปัญหาที่พบบ่อย

Error: รูปภาพเสียหมดบนเว็บตัวเองหลัง Enable Hotlink Protection

สาเหตุคือลืมเพิ่ม Domain ตัวเองใน Allowed URL List ใน cPanel ให้เพิ่มทั้ง https://yoursite.com และ https://www.yoursite.com เพราะบางครั้ง Browser ส่ง Referer แบบมี www บางครั้งไม่มี

Error: Google Images หรือ Search Engine ดูรูปไม่ได้

Googlebot และ Search Engine Crawler มักไม่ส่ง HTTP Referer หากตั้งค่า .htaccess อนุญาต Empty Referer (!^$) ไว้แล้ว Google ควรเข้าถึงได้ ถ้ายังมีปัญหาให้เพิ่ม RewriteCond %{HTTP_REFERER} !^https://www\.google\.com/ [NC]

Error: Social Media (Facebook/LINE) แสดงรูป Preview ไม่ได้

Facebook Crawler และ LINE Scraper ส่ง Referer แตกต่างกัน ให้เพิ่ม Whitelist ของ Facebook (https://www.facebook.com/) และ LINE ใน .htaccess หรือปิด Hotlink Protection สำหรับ Path ของ OG Image โดยเฉพาะ

Error: .htaccess ทำงานแล้วแต่ยังโดน Hotlink อยู่

ตรวจสอบว่า mod_rewrite เปิดอยู่บน Server และ AllowOverride All ถูกตั้งค่าไว้ใน Apache config ถ้าเป็น Nginx จะใช้ไวยากรณ์แตกต่าง ต้องแก้ที่ nginx.conf แทน


คำถามที่พบบ่อย

Hotlink Protection กับ Copyright ต่างกันอย่างไร?

Hotlink Protection เป็นมาตรการทางเทคนิคที่บล็อกการโหลดไฟล์จากเซิร์ฟเวอร์ของคุณผ่านเว็บอื่น ส่วน Copyright คือสิทธิ์ทางกฎหมาย ควรใช้ทั้งสองอย่างร่วมกัน เพราะถึงแม้จะบล็อก Hotlink แล้ว ยังมีคนดาวน์โหลดรูปแล้วอัปโหลดใหม่ได้

Hotlink Protection ส่งผลต่อ SEO ไหม?

ถ้าตั้งค่าถูกต้อง (อนุญาต Empty Referer) ไม่กระทบ SEO เพราะ Googlebot ส่วนใหญ่ไม่ส่ง Referer Google Image Search ก็จะยังแสดงรูปได้ตามปกติ

จะดูว่าใครกำลัง Hotlink รูปของเราได้อย่างไร?

ดูจาก Access Log ของ Server หรือใช้เครื่องมือ Analytics เช่น ดู Referer Report ใน AWStats หรือ Webalizer ที่มาพร้อมกับ cPanel ทุกแผน


สำหรับผู้ที่ต้องการ Bandwidth ไม่จำกัดพร้อมระบบ Hotlink Protection ในตัว asiagb.com/hosting.html มีแผน Hosting ที่ตั้งค่าได้ครบและ support ภาษาไทย