Redirect Everyone Except Your IP and Redirect an IP Address

mod_rewrite นี่ทำอะไรได้มากมายครับ วันนี้มีเหตุจำเป็นที่ผมจะต้องทำการ redirect IP Address สามารถทำได้ 2 อย่าง

1. ทำการ Redirect IP Address ของทุกๆ คน ยกเว้น IP ของคุณเอง
# Get mod_rewrite going
Options -MultiViews +FollowSymLinks
RewriteEngine On

# Redirect everyone who’s not from your IP
RewriteCond %{REMOTE_ADDR} !123.456.789.10 [NC]
RewriteRule !maintenance.html$ maintenance.html [R]

2. Redirect เฉพาะบาง IP Address ที่ต้องการเท่านั้น
# Get mod_rewrite going
Options -MultiViews +FollowSymLinks
RewriteEngine On

# Redirect someone’s IP
RewriteCond %{REMOTE_ADDR} 123.456.789.10
RewriteRule .* http://my.diary.in.th/ [R]

Anti Leech

พอดีนั่งดู log file แล้วเห็นว่ามีคนแอบเอาภาพเราไปใช้นี่นา ซึ่งจริงๆ แล้วผมไม่ได้ซีเรียสอะไรหรอกครับ แต่แค่อยากลองหาอะไรทำสนุกๆ ดูว่าเราจะหาวิธีป้องกันได้ยังไงบ้าง

ลองค้นๆ ดูแล้วก็พบว่าตัวช่วยที่ดีตัวหนึ่งก็คือ .htaccess และ Rewrite module ของ Apache นี่เอง

วิธีการง่ายๆ คือสร้างไฟล์ชื่อ .htaccess แล้วใส่คำสั่งของ Rewrite module ไว้ข้างใน
ดูตัวอย่างเลยก็แล้วกันครับ

1. วิธีนี้คือป้องกันไม่ให้ใครแอบเรียกไฟล์รูปภาพที่มีนามสกุล jpg|jpeg|gif|png|bmp ของเราไปใช้ โดยเมื่อภาพเหล่านี้ถูกเรียกใช้จากเว็บอื่น ภาพที่ปรากฎจะเป็น dot.gif แทน นอกจากนี้จะไม่สามารถเรียกไฟล์นั้นโดยตรงได้ด้วย เช่น จะเรียก http://my.diary.in.th/images/test.jpg ไม่ได้


RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://diary.in.th/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://diary.in.th$ [NC]
RewriteCond %{HTTP_REFERER} !^http://my.diary.in.th/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://my.diary.in.th$ [NC]
RewriteCond %{REQUEST_URI} !^/dot.gif [NC]
RewriteRule .*.(jpg|jpeg|gif|png|bmp)$ http://my.diary.in.th/dot.gif [R,NC]

Continue reading Anti Leech