0

我有一个多语言网站。内容语言通过 URL 定义:

www.example.com/en_gb/content/right/here/

为确保搜索引擎了解该内容也可用于其他语言,我使用了我页面中的备用链接<head/>

<link href="http://www.example.com/en_au/content/right/here/" hreflang="en-AU" rel="alternate">
<link href="http://www.example.com/fr_be/content/right/here/" hreflang="fr-BE" rel="alternate">
<link href="http://www.example.com/nl_be/content/right/here/" hreflang="nl-BE" rel="alternate">
<link href="http://www.example.com/en_ca/content/right/here/" hreflang="en-CA" rel="alternate">
<link href="http://www.example.com/fr_ca/content/right/here/" hreflang="fr-CA" rel="alternate">

现在我的问题是:如果有人请求具有有效语言环境(我的网站通常支持的本地语言)的页面,但当前页面不适用于该语言环境,我该怎么办?

目前,我写信到“此内容不适用于您所在的国家/地区”页面,并以HTTP 状态代码 404 Not Found进行响应,以确保搜索引擎不会将该页面编入索引。

我是否也可以使用HTTP 状态代码 406 Not Acceptable来确保搜索引擎更好地理解该页面也可以使用其他语言?该状态码是否合适?如果是这样,我将如何在向我的用户显示页面的同时使用备用链接进行响应?这就是 RFC 所说的:

除非它是一个 HEAD 请求,否则响应应该包含一个实体,该实体包含一个可用实体特征和位置列表,用户或用户代理可以从中选择最合适的一个

谢谢!

4

1 回答 1

1

您为每种语言使用不同的 URL,因此 404 将是在此实例中使用的适当状态代码。

如果不同的语言资源都在同一个 URL 上可用,并且您使用Accept-language请求标头来确定要发送哪个,并且客户端不接受您可用的任何语言,那么 406 将是正确的选择。

于 2014-12-09T09:33:29.197 回答