Cloudflare Redirect Rules: gom nhiều domain về một domain chính không cần code

Bạn có `brand.com`, `brand.vn`, `brand.net` và muốn tất cả đều trỏ về `brand.com`? Cloudflare Redirect Rules làm được điều đó hoàn toàn free, không cần server, không cần code - chỉ cần DNS record đặc biệt và một redirect rule là xong. Bài này hướng dẫn từng bước cho cả single domain lẫn multi-domain. ---

Vấn đề

Khi quản lý brand hoặc sản phẩm, thường có nhiều domain mua để bảo vệ thương hiệu: .com, .vn, .net, .io, hay các typo domain. Vấn đề là phải làm sao để tất cả các domain đó đều redirect về domain chính một cách sạch sẽ - giữ nguyên path, query string - và không mất SEO.

Cách làm cũ: setup một server nginx/Apache chỉ để làm redirect. Tốn tài nguyên, tốn thời gian maintain. Cách hiện đại hơn: dùng Cloudflare Redirect Rules - xử lý hoàn toàn ở edge, không cần origin server, miễn phí.

Page Rules vs Redirect Rules: Cloudflare đang dần deprecated Page Rules và khuyến nghị dùng Redirect Rules (Single Redirects) thay thế. Redirect Rules mạnh hơn, hỗ trợ wildcard, dynamic expression, và không bị giới hạn 3 rules/domain như Page Rules free.


Giải thích: cơ chế hoạt động

Với domain alias (domain chỉ để redirect, không có server thật), flow như sau:

Visitor → domain alias (brand.vn) 
        → Cloudflare edge (xử lý redirect rule)
        → 301 Redirect → domain chính (brand.com)
        → Origin server

Cloudflare cần một DNS record có Proxy: ON để intercept traffic và xử lý redirect rule. Nhưng domain alias không có server thật - vậy dùng IP nào?

Cloudflare cung cấp hai placeholder address đặc biệt:

  • 192.0.2.1 - địa chỉ IP reserved (RFC 5737), không route ra internet
  • 100:: - IPv6 tương đương

Traffic đến địa chỉ này sẽ được Cloudflare "bắt" và áp dụng rules trước khi cần forward đến origin.


Hướng dẫn: redirect một domain alias về domain chính

Bước 1: Thêm domain alias vào Cloudflare

Làm theo hướng dẫn trong bài Cài đặt Cloudflare cho nhiều domain. Đảm bảo domain đã ở trạng thái Active.

Bước 2: Tạo DNS record placeholder

Vào DNS → Records của domain alias, thêm 2 record:

Type Name Content Proxy
A @ (root) 192.0.2.1 Proxied (cam)
A www 192.0.2.1 Proxied (cam)

Tại sao cần cả www? Visitor có thể gõ www.brand.vn hoặc brand.vn - cần cover cả hai.

Bước 3: Tạo Redirect Rule

Vào Rules → Redirect Rules → Create Rule.

Cấu hình rule:

Rule name: Redirect brand.vn to brand.com

When incoming requests match:
  Field: Hostname
  Operator: equals
  Value: brand.vn
  
  OR
  
  Field: Hostname
  Operator: equals
  Value: www.brand.vn

Then:
  Type: Dynamic
  URL expression: concat("https://brand.com", http.request.uri.path)
  Status code: 301
  Preserve query string: ✓ ON

Click Save and Deploy.

Kết quả:

  • http://brand.vn/products?sort=pricehttps://brand.com/products?sort=price
  • https://www.brand.vn/abouthttps://brand.com/about

Hướng dẫn: redirect nhiều domain cùng lúc (bulk)

Nếu có 5–10 domain alias cùng redirect về một đích, tạo một rule duy nhất thay vì nhiều rule riêng lẻ.

Cách dùng toán tử is in

When incoming requests match:
  Expression (edit expression):
  
  (http.host in {
    "brand.vn"
    "www.brand.vn"
    "brand.net"
    "www.brand.net"
    "mybrand.io"
    "www.mybrand.io"
  })

Then:
  Type: Dynamic
  URL expression: concat("https://brand.com", http.request.uri.path)
  Status code: 301
  Preserve query string: ✓ ON

Một rule, cover tất cả domain alias. Khi thêm domain mới, chỉ cần cập nhật danh sách trong rule.

Lưu ý: Mỗi domain alias vẫn cần được thêm vào Cloudflare (tạo zone) và có DNS A record placeholder riêng. Rule chỉ xử lý redirect logic - không bypass yêu cầu DNS.


Hướng dẫn: redirect www về non-www (hoặc ngược lại)

Đây là use case phổ biến nhất: đảm bảo tất cả traffic về brand.com, không phải www.brand.com.

Redirect www → non-www:

When: Hostname equals www.brand.com

Then (Dynamic):
  concat("https://brand.com", http.request.uri.path)
  Status: 301

Redirect non-www → www:

When: Hostname equals brand.com

Then (Dynamic):
  concat("https://www.brand.com", http.request.uri.path)
  Status: 301

Chọn một trong hai và nhất quán - search engine penalize nếu cùng content accessible ở cả hai.


Code minh họa: kiểm tra redirect bằng curl

Sau khi setup xong, verify redirect hoạt động đúng:

# Kiểm tra redirect chain
curl -Lv --max-redirs 5 http://brand.vn/some-path?q=test 2>&1 | grep -E "< HTTP|< location|< Location"

# Kết quả mong đợi:
# < HTTP/1.1 301 Moved Permanently
# < location: https://brand.com/some-path?q=test
# < HTTP/2 200

# Kiểm tra nhanh status code
curl -o /dev/null -s -w "%{http_code} → %{redirect_url}\n" http://brand.vn
# Output: 301 → https://brand.com/

So sánh: Page Rules vs Redirect Rules

Tiêu chí Page Rules (cũ) Redirect Rules (mới)
Giới hạn free 3 rules/domain 10 rules/domain
Wildcard * đơn giản Regex + dynamic expression
Giữ query string Manual Built-in option
Multi-domain Phải tạo từng rule is in operator
Trạng thái Deprecated dần Khuyến nghị dùng

Nếu bạn đang dùng Page Rules cũ cho redirect, đây là thời điểm tốt để migrate sang Redirect Rules.


Best practices

1. Dùng 301, không dùng 302. 301 (Permanent) truyền link equity cho SEO. 302 (Temporary) không. Chỉ dùng 302 khi redirect tạm thời có kế hoạch rollback.

2. Redirect về HTTPS. URL expression luôn bắt đầu bằng https:// - đừng redirect về http://.

3. Giữ nguyên path và query string. Dùng http.request.uri.path trong expression để đảm bảo /product/123?ref=email không bị mất sau redirect.

4. Verify sau khi deploy. Dùng curl -Lv hoặc tool như redirectcheck.org để kiểm tra toàn bộ redirect chain.

5. Check Google Search Console. Sau khi redirect, submit sitemap mới và monitor crawl errors trong vài ngày đầu.


Kết

Cloudflare Redirect Rules là cách thanh lịch và miễn phí để quản lý domain alias - không cần server chỉ để làm redirect, không tốn chi phí infrastructure. Mỗi domain alias cần: (1) thêm vào Cloudflare, (2) DNS A record với 192.0.2.1 proxied, (3) một redirect rule.

Bài tiếp theo chúng tôi sẽ đi vào Cloudflare Tunnel - cách expose server nội bộ ra internet mà không cần public IP hay port forwarding. Nếu bạn đang chạy service trên VPS private, homelab, hay môi trường dev cần share với client - đây là giải pháp đáng xem.


Tham khảo


BKGlobal Tech Team

Blog Công nghệ

Xem tất cả