Điểm:0

Apache 2.4: Cách chuyển hướng người dùng tùy thuộc vào tùy chọn ngôn ngữ

lá cờ jp

Tôi có một trang web tĩnh đa ngôn ngữ. Trang web được cấu trúc sao cho tất cả nội dung đều bằng tiếng Anh theo mặc định, vì vậy nội dung mặc định nằm trong /. Ví dụ:

Đường dẫn: Nội dung:
/               Trang Chủ
/contact.html Trang Liên hệ
/services.html Dịch vụ
/about.html Giới thiệu về chúng tôi

Và sau đó có một thư mục con cho mỗi ngôn ngữ được hỗ trợ. Ví dụ: 'de' cho tiếng Đức, 'da' cho tiếng Đan Mạch, v.v. Tất cả nội dung được bản địa hóa sau đó sẽ thay đổi kích thước trong thư mục con cho ngôn ngữ tương ứng.

Vì vậy, nội dung của Đan Mạch sẽ được cấu trúc như thế này:

Đường dẫn: Nội dung:
/da/ Trang chủ
/da/contact.html Trang Liên hệ
/da/services.html Dịch vụ
/da/about.html Giới thiệu về chúng tôi

Và tương tự như vậy đối với các ngôn ngữ khác.

Vì đây là một trang web hoàn toàn tĩnh, tôi không thể sử dụng một số ngôn ngữ kịch bản như PHP để phát hiện ngôn ngữ người dùng và chuyển hướng họ dựa trên đó.

Vì vậy, tôi nghĩ rằng tôi sẽ phải để apache làm phần này.

Tôi đang sử dụng Apache 2.4.

Sau đó, câu hỏi của tôi là, làm cách nào để định cấu hình máy chủ ảo Apache sao cho những người dùng yêu cầu / sẽ được chuyển hướng đến /da/ nếu ngôn ngữ ưa thích của họ là tiếng Đan Mạch, tới /de/ nếu ngôn ngữ ưa thích của họ là tiếng Đức và chỉ nhận được / dưới dạng mặc định nếu tiếng Anh hoặc bất kỳ ngôn ngữ nào khác là ngôn ngữ ưa thích? Tương tự như vậy, nếu người dùng yêu cầu /foo.html, họ sẽ được chuyển hướng đến /$LANG/foo.html, trong đó $LANG là ngôn ngữ ưa thích của họ (ngôn ngữ đó có nằm trong danh sách các ngôn ngữ được hỗ trợ không).

Tùy chọn ngôn ngữ/ngôn ngữ của người dùng sẽ được phát hiện bằng cách sử dụng tiêu đề Ngôn ngữ chấp nhận của khách hàng.

Bây giờ, tiêu đề này sẽ hỗ trợ khách hàng chỉ định nhiều ngôn ngữ theo thứ tự ưu tiên. Vì vậy, chúng tôi sẽ chỉ sử dụng bất cứ điều gì được ưa thích.

Ngoài ra, tôi đoán chúng ta sẽ cần lưu trữ ngôn ngữ trong một loại cookie nào đó. Bởi vì nếu người dùng đã chỉ định tiếng Đức là ngôn ngữ ưu tiên nhưng sau đó yêu cầu rõ ràng phiên bản tiếng Đan Mạch hoặc tiếng Anh thì chúng tôi không nên tiếp tục chuyển hướng họ.

Vì vậy, tôi đã thử điều này. Điều này không đặt cookie mà nó chỉ kích hoạt trên trang chính (/). Nó chỉ kiểm tra xem tiếng Đan Mạch có ở Ngôn ngữ chấp nhận hay không. Nhưng không phải nếu tiếng Đan Mạch được ưa thích hay không. Ngoài ra, nó không hỗ trợ nhiều ngôn ngữ thực sự tốt. Ví dụ: giả sử chúng tôi có một người dùng thích tiếng Đức nhưng có ngôn ngữ thứ hai là tiếng Đan Mạch. Họ sẽ lấy tiếng Đan Mạch ở đây chứ không phải tiếng Đức.

RewriteEngine bật
RewriteCond %{HTTP:Accept-Language} (da) [NC]
RewriteCond %{REQUEST_URI} "^/$"
RewriteRule ^(.*)$ https://%{SERVER_NAME}/da [R=303,NC,L]   

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.