Mã trạng thái phù hợp để chuyển hướng ngôn ngữ (301, 302, Hội 307)?


9

Tôi đã xây dựng một trang web với nhiều ngôn ngữ. Các URL trông như:

  • http://www.example.com/en/
  • http://www.example.com/de/

Nếu người dùng truy cập tên miền chính http://www.example.com/, máy chủ web sẽ phát hiện ngôn ngữ của người dùng (tiêu đề Ngôn ngữ chấp nhận) và chuyển hướng anh ta đến một trong các URL trên.

Cho đến bây giờ chúng tôi đã sử dụng Chuyển hướng tạm thời (302), vì người dùng có thể quay lại với các cài đặt ngôn ngữ khác và sau đó sẽ được chuyển hướng sang ngôn ngữ khác.

Đối với một câu hỏi khác , khuyên nên sử dụng 307:

307 Chuyển hướng tạm thời

Trong trường hợp này, yêu cầu nên được lặp lại với một URI khác; tuy nhiên, các yêu cầu trong tương lai vẫn nên sử dụng URI gốc. Trái ngược với cách 302 được thực hiện trong lịch sử, phương thức yêu cầu không được phép thay đổi khi phát hành lại yêu cầu ban đầu. Chẳng hạn, một yêu cầu POST phải được lặp lại bằng một yêu cầu POST khác.

Câu hỏi là: mã trạng thái thích hợp để chuyển hướng ngôn ngữ là gì?

Câu trả lời:


3

Đối với người dùng, chuyển hướng 302 hoặc 307 là tốt. Sự khác biệt thực tế duy nhất giữa những người và chuyển hướng 301 là bộ nhớ đệm. Trình duyệt lưu trữ một chuyển hướng 301. Nếu người dùng thay đổi cài đặt ngôn ngữ trình duyệt của họ, sẽ tốt hơn nếu họ có thể truy cập trang gốc và chuyển hướng khác nhau. Vì vậy, sử dụng chuyển hướng 302 hoặc 307 không lưu trữ được là phù hợp.

Trình thu thập công cụ tìm kiếm thường không gửi Accept-Languagetiêu đề. Thay vì đưa ra một chuyển hướng khi không có Accept-Languagetiêu đề, bạn nên hiển thị một trang có liên kết đến tất cả các lựa chọn. Điều này sẽ cho phép các liên kết đến trang gốc của bạn để chuyển PageRank cho tất cả các ngôn ngữ của bạn. Nếu bạn thay vào đó chuyển hướng, tất cả PageRank của bạn sẽ được chuyển sang ngôn ngữ mặc định của bạn. Các ngôn ngữ khác của bạn sẽ bị bỏ lỡ.


1

Vấn đề với chuyển hướng tự động dựa trên ngôn ngữ của người dùng là nó có thể ngăn người dùng và công cụ tìm kiếm xem tất cả các phiên bản của trang web của bạn.

Cách tiếp cận tốt nhất là liên kết chéo từng phiên bản ngôn ngữ của một trang để người dùng có thể dễ dàng tiếp cận ngôn ngữ mong muốn với bộ chọn ngôn ngữ và công cụ tìm kiếm sẽ không bị nhầm lẫn (bên cạnh nhiều hoạt động thu thập thông tin nhận biết ngôn ngữ, vẫn được khuyến nghị) .

Ví dụ: nếu bạn có trang tiếng Tây Ban Nha và tiếng Anh (en), thì bạn có thể chỉ định các url thích hợp của họ bằng thẻ rel="alternate" hreflang="x" liên kết cho riêng mình ngoài các liên kết đến phiên bản tiếng Tây Ban Nha và tiếng Anh

<link rel="alternate" href="http://example.com/es" hreflang="es" />
<link rel="alternate" href="http://example.com/en" hreflang="en" />

OP có thể đã làm điều này rồi, nhưng câu hỏi là về trang gốc ( example.com/), dường như không có bất kỳ nội dung nào. Cả người dùng và bot sẽ không bỏ lỡ điều gì nếu có một chuyển hướng từ trang gốc đến các trang chủ dành riêng cho ngôn ngữ (giả sử rằng các bản dịch được liên kết từ đó, theo cách bạn mô tả).
unor

@unor vâng! tôi đã hreflang. Câu hỏi là về trang gốc.
ar099968
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.