Cloudflare Pages là nhân tố mới trong giới JAMstack, bên cạnh Netlify và Vercel. Dù là nhân vật mới nhưng Cloudflare lại là cái tên được nhiều người biết đến nên dần nhiều người bắt đầu chuyển sang dịch vụ này của Cloudflare. Cloudflare Pages có nhiều ưu điểm để nhiều người cân nhắc nhưng cũng những vấn đề bạn phải cân chỉnh, thiết lập thì mới đạt được điều mình mong muốn. Một trong số đó là redirects.
Vấn đề
Cloudflare Pages hỗ trợ chức năng redirect thông qua file _redirects
, tương tự như Netlify. Bạn có thể tạo một file như thế này:
Rule này redirect tất cả đường link blog của bạn từ dạng /articles/...
sang /blog/...
. Bạn có thể đọc thêm về phần này tại trang document của Cloudflare. Nhưng rule này cũng chỉ ở mức subpath, bạn không thể làm hai điều mà mình sắp hướng dẫn dưới đây thông qua file _redirects
này được.
*.pages.dev
sang custom domain của bạn
Redirect từ Tại sao phải làm điều này?
Khi bạn deploy project của mình lên Cloudflare Pages, địa chỉ domain đầu tiên mà bạn có sẽ là dạng *.pages.dev
. Và rồi sau đó bạn có thể gán custom domain tùy úy cho trang này ở dashboard. Khi đã gán custom domain rồi thì trang ở *.pages.dev
vẫn tồn tại riêng biệt mà nếu bạn muốn thống nhất địa chỉ trang web của mình thì bạn phải thiết lập redirect cho nó.
Tiến hành
-
Đăng nhập vào Cloudflare dashboard và chọn account của bạn.
-
Chọn Workers & Pages rồi chọn Pages mà bạn muốn.
-
Vào Custom domains và kiểm tra lại xem custom domain của bạn có ở đó chưa. Nếu chưa, thêm mới bằng cách chọn Set up a custom domain.
-
Tìm đến Account Home > Bulk Redirects.
-
Chọn Create a new Bulk Redirects list > Create new list.
-
Ở mục content type, chọn Redirect.
-
Thêm domain
*.pages.dev
của project bạn vào source URL. -
Nhập target custom domain URL. Lưu ý là bạn phải thêm
https://
vào trước tên apex domain (domain không cówww
). -
Click Edit parameters và tick chọn Preserve query string, Subpath matching, Preserve path suffix.
Nếu tick vào Include subdomains box, toàn bộ những URLs bản preview sẽ bị redirect tới custom domain chính.
-
Click Add to list.
-
Vào lại Bulk Redirects > Create Bulk Redirects > chọn list bạn vừa tạo > Save and Deploy.
www
sang không có www
(apex domain)
Redirect từ domain có Trong một số trường hợp, thay vì muốn có domain www.example.com
, người dùng lại muốn có domain gọn hơn dạng example.com
trên thanh địa chỉ. Và việc thống nhất cách hiển thiện này cũng là điều thiết yếu trong quá trình phát triển trang web. Thông thường, các dịch vụ như Netlify hay Vercel hỗ trợ điều này không qua thiết lập DNS kèm theo số tinh chỉnh trực quan ở dashboard của họ. Riêng với Cloudflar Pages, bạn phải tự set up chức năng này, và cũng phải thông qua Bulk Redirects, chi tiết như sau:
-
Đăng nhập vào Cloudflare dashboard, chọn account và website của bạn.
-
Vào mục DNS.
-
Tạo một record DNS mới cho subdomain
www
. Hoặc làA
record với value là192.0.2.1
hoặc làAAAA
record với value là100::
. Record mới này cũng phải được mở proxy của Cloudflare (đám mây màu cam) để nó có thể tương thích với redirect rule mà chúng ta sẽ thiết lập sắp tới. -
Tiếp theo, tìm đến Account Home > Bulk Redirects và set up rule redirect tương tự như hướng dẫn phía trên (bạn có thể add thêm rule vào list đã được tạo ở trên), vẫn tick chọn vào Preserve query string, Subpath matching, Preserve path suffix. Và cuối cùng là Save and Deploy.
Hi vọng hướng dẫn trên đây là giúp bạn phần nào trong quá trình chuyển sang Cloudflare Pages. Cheers!