Làm thế nào để cấu hình định tuyến dựa trên tên miền với Intlayer thay vì các đường dẫn /[locale]/?
Trả lời ngắn gọn
Định tuyến dựa trên tên miền đơn giản hơn định tuyến dựa trên đường dẫn (example.com/[locale]/) vì bạn có thể bỏ qua toàn bộ cấu hình middleware và routing. Chỉ cần triển khai ứng dụng của bạn lên từng tên miền ngôn ngữ và đặt một biến môi trường cho mỗi tên miền.
Các bước thực hiện
- Triển khai một lần cho mỗi tên miền (
example.com,exemple.fr,ejemplo.es, …). - Với mỗi lần triển khai, đặt
LOCALE(và các biến môi trường Intlayer thông thường) thành ngôn ngữ mà tên miền đó sẽ phục vụ. - Tham chiếu biến đó dưới dạng
defaultLocaletrong fileintlayer.config.[ts|js]của bạn.
Sao chép mã vào clipboard
Chỉ vậy thôi, cách này hoạt động tương tự cho Next.js, Vite + React, Vite + Vue, v.v.
Nếu mọi tên miền đều trỏ đến cùng một lần triển khai thì sao?
Nếu tất cả các tên miền đều trỏ đến cùng một bundle ứng dụng, bạn sẽ cần phát hiện host tại runtime và truyền ngôn ngữ thủ công thông qua provider.
Dành cho Next.js
Sao chép mã vào clipboard
Dành cho Vue
Sao chép mã vào clipboard
Thay thế getLocaleFromHostname() bằng logic tra cứu của riêng bạn.
Cập nhật bộ chuyển đổi ngôn ngữ của bạn
Khi sử dụng định tuyến dựa trên tên miền, việc thay đổi ngôn ngữ đồng nghĩa với việc điều hướng sang một tên miền khác:
Sao chép mã vào clipboard
Lợi ích của định tuyến dựa trên tên miền
- Cấu hình đơn giản hơn: Không cần cấu hình
intlayerProxy,generateStaticParams,react-router, hoặcvue-router - SEO tốt hơn: Mỗi ngôn ngữ có tên miền riêng
- URL sạch hơn: Không có tiền tố ngôn ngữ trong đường dẫn
- Dễ bảo trì hơn: Mỗi triển khai ngôn ngữ là độc lập