Cloudflare Redirect Rules — ตั้งค่า URL Redirect แบบใหม่แทน Page Rules

Cloudflare Redirect Rules เป็นฟีเจอร์ใหม่ที่ Cloudflare แนะนำให้ใช้แทน Page Rules เดิม สำหรับการจัดการ URL Redirect โดยเฉพาะ รองรับทั้ง Static Redirect และ Dynamic Redirect ด้วย Expression Rules ที่ยืดหยุ่นกว่าเดิมมาก และทำงานบน Cloudflare Edge ทำให้ Redirect เสร็จก่อนถึง Origin Server ช่วยลดภาระของ VPS ได้มากขึ้น

Redirect Rules คืออะไร และต่างจาก Page Rules อย่างไร

Page Rules เดิมของ Cloudflare เป็นเครื่องมือแบบ All-in-one ที่ใช้จัดการทั้ง Cache, Security และ Redirect ในที่เดียว แต่มีข้อจำกัดหลายอย่าง เช่น จำนวน Rule ที่จำกัด และ Logic ที่ไม่ยืดหยุ่น Cloudflare จึงแยก Redirect ออกมาเป็น Redirect Rules โดยเฉพาะ ซึ่งรองรับ HTTP Status Code ได้หลากหลายกว่า (301, 302, 307, 308) และมี Expression Engine ที่ทรงพลังกว่าเดิมมาก

ประเภทของ Redirect: Static vs Dynamic

Static Redirect คือการกำหนด URL ต้นทางและปลายทางแบบตายตัว เหมาะสำหรับกรณีที่ต้องการ Redirect URL เดียวหรือหลาย URL ที่รู้แน่ชัด เช่น /old-page ไป /new-page

Dynamic Redirect ใช้ Wildcard หรือ Regular Expression เพื่อ Match URL หลายรูปแบบพร้อมกัน เช่น Redirect ทุก URL ใน /blog/* ไปยัง /articles/* โดยรักษา Path ส่วนท้ายไว้

วิธีสร้าง Redirect Rule ใน Cloudflare Dashboard

ทำตามขั้นตอนนี้เพื่อสร้าง Redirect Rule ใหม่:

  1. เข้า Cloudflare Dashboard และเลือก Domain ที่ต้องการ
  2. ไปที่เมนู Rules → Redirect Rules
  3. คลิก Create rule
  4. ตั้งชื่อ Rule ให้จำง่าย เช่น “Redirect www to non-www”
  5. กำหนดเงื่อนไข URL ในส่วน When incoming requests match
  6. เลือก Status Code (301 หรือ 302)
  7. ใส่ Destination URL ปลายทาง
  8. คลิก Save

ตัวอย่างที่ 1: Redirect www ไป non-www

หากต้องการให้ www.example.com ชี้ไปที่ example.com เสมอ ให้ตั้งค่าดังนี้:

When: Hostname equals www.example.com
Status Code: 301 (Permanent Redirect)
Destination URL: https://example.com${uri}

การใช้ ${uri} ช่วยให้ Path และ Query String เดิมถูกส่งต่อไปด้วย เช่น www.example.com/page?id=1 จะ Redirect ไป example.com/page?id=1

ตัวอย่างที่ 2: Redirect HTTP ทั้งหมดไป HTTPS

เพื่อบังคับให้ผู้เข้าชมใช้ HTTPS เสมอ สร้าง Rule ดังนี้:

When: SSL is off (http://)
Status Code: 301 (Permanent Redirect)
Destination URL: https://${host}${uri}

หมายเหตุ: หากคุณเปิด Cloudflare SSL/TLS ใน “Full” หรือ “Full (Strict)” โดยปกติ Cloudflare จะ Redirect HTTP ไป HTTPS ให้อัตโนมัติอยู่แล้ว แต่การตั้ง Rule แบบนี้ช่วยให้มั่นใจได้มากขึ้น

ตัวอย่างที่ 3: Redirect URL เก่าไป URL ใหม่

เมื่อปรับโครงสร้างเว็บไซต์และต้องการ Redirect URL เก่าไปยัง URL ใหม่ เพื่อรักษา SEO Ranking:

When: URI Path equals /old-page
Status Code: 301 (Permanent Redirect)
Destination URL: https://example.com/new-page

สำหรับ Redirect หลาย URL พร้อมกันโดยใช้ Pattern:

When: URI Path matches regex ^/blog/(.*)$
Status Code: 301 (Permanent Redirect)
Destination URL: https://example.com/articles/${1}

ความแตกต่างระหว่าง 301 และ 302 Redirect

301 Permanent Redirect บอก Browser และ Search Engine ว่า URL นี้ย้ายไปถาวรแล้ว Browser จะ Cache Redirect นี้ไว้ และ Search Engine จะโอน Link Equity ไปยัง URL ใหม่ เหมาะสำหรับการเปลี่ยน URL โครงสร้างเว็บไซต์ถาวร

302 Temporary Redirect บอกว่าการย้ายนี้ชั่วคราว Browser จะไม่ Cache และ Search Engine จะยังคงรักษา Link Equity ที่ URL ต้นทาง เหมาะสำหรับการทดสอบ A/B หรือ Maintenance

หลักการง่ายๆ: ใช้ 301 เมื่อย้ายถาวร ใช้ 302 เมื่อย้ายชั่วคราว

  • ลดภาระ Server: Redirect เกิดที่ Cloudflare Edge ก่อนถึง Origin Server ทำให้ VPS ไม่ต้องประมวลผล Redirect เอง
  • เร็วขึ้นทั่วโลก: Cloudflare มี Edge Server กว่า 300 แห่งทั่วโลก ทำให้ผู้เข้าชมได้รับ Redirect เร็วจากจุดที่ใกล้ที่สุด
  • ปกป้อง Origin: Reduce Direct Traffic ไปยัง Server ทำให้ปลอดภัยจาก DDoS มากขึ้น

สรุป

Cloudflare Redirect Rules เป็นเครื่องมือที่ทรงพลังและยืดหยุ่นสำหรับจัดการ URL Redirect โดยไม่ต้องแตะ Code บน Server รองรับทั้ง Static และ Dynamic Redirect ด้วย Expression ที่ซับซ้อนได้ ใช้แทน Page Rules ได้อย่างมีประสิทธิภาพ และเมื่อใช้ร่วมกับ VPS จะช่วยเพิ่มประสิทธิภาพและลดภาระ Server ได้อีกมาก