Hotlink คืออะไร และเสียหายอะไร?
Hotlinking หรือ Direct Linking คือการที่เว็บไซต์อื่นนำ URL รูปภาพหรือไฟล์จากเซิร์ฟเวอร์ของคุณไปฝังในหน้าเว็บตัวเอง เมื่อผู้เยี่ยมชมเว็บนั้นโหลดหน้า เซิร์ฟเวอร์ของคุณจะต้องส่งไฟล์ให้ทั้งที่คุณไม่ได้ประโยชน์อะไรเลย
ผลเสียของ Hotlinking ที่เกิดขึ้น:
- Bandwidth หมดเร็ว — คุณเสียค่า Bandwidth โดยไม่ได้รับ Traffic มายังเว็บตัวเอง
- Server ช้าลง — Request จากเว็บอื่นสร้างโหลดให้เซิร์ฟเวอร์โดยไม่จำเป็น
- ละเมิด Copyright — เว็บอื่นใช้ไฟล์ของคุณโดยไม่ได้รับอนุญาต
- ค่าใช้จ่ายเพิ่มขึ้น — Hosting บางแผนคิด Overage Charge เมื่อ Bandwidth เกิน
ตั้งค่าผ่าน cPanel Hotlink Protection
วิธีนี้ง่ายที่สุดสำหรับผู้ใช้ทั่วไป:
- ล็อกอิน cPanel แล้วไปที่หัวข้อ Security
- คลิก Hotlink Protection
- คลิก Enable
- กรอก URL ที่อนุญาต (Allow Access) เช่น
https://yoursite.comและhttps://www.yoursite.com - ระบุนามสกุลไฟล์ที่ต้องการป้องกัน เช่น
jpg,jpeg,png,gif,webp,pdf,mp4 - เลือกว่าจะ Redirect ไปยัง URL ใดเมื่อตรวจพบ Hotlink (เช่น หน้า Error หรือโลโก้ลายน้ำ)
- คลิก 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]
อธิบายแต่ละบรรทัด:
RewriteCond %{HTTP_REFERER} !^$— อนุญาต Direct Access (ไม่มี Referer) เช่น เปิดรูปโดยตรง!^https://yoursite\.com/— อนุญาตเว็บตัวเอง[NC]— Case Insensitive[F]— ส่ง 403 Forbidden กลับไป
อนุญาต 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
แก้ปัญหาที่พบบ่อย
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 ภาษาไทย