HTTP状态代码406适用于“您所在国家/地区不可用的内容”?如果没有,什么是合适的?

时间:2014-12-09 09:29:31

标签: http http-status-code-404 multilingual http-status-codes http-status-code-406

我有一个多语种网站。内容语言通过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 status code 404 Not Found以确保搜索引擎不会将此页面编入索引。

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

  

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

谢谢!

1 个答案:

答案 0 :(得分:0)

您正在为每种语言使用不同的网址,因此404将是在此实例中使用的相应状态代码。

如果同一网址上的所有语言资源都可用,并且您使用Accept-language请求标头来确定要发送的语言资源,并且客户端不接受您提供的任何语言,然后406将是正确的选择。