Код состояния HTTP 406 подходит для контента, недоступного в вашей стране? Если нет, то что подходит?

У меня многоязычный сайт. Язык контента определяется через URL:

www.example.com/en_gb/content/right/здесь/

Чтобы убедиться, что поисковые системы понимают, что контент также доступен на других языках, я использую альтернативные ссылки на моей странице <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, ответ ДОЛЖЕН включать объект, содержащий список доступных характеристик объекта и местоположения, из которых пользователь или пользовательский агент может выбрать наиболее подходящий.

Спасибо!




Ответы (1)


Вы используете разные URL-адреса для каждого языка, поэтому 404 будет подходящим кодом состояния для использования в этом случае.

Если все ресурсы на разных языках были доступны по одному и тому же URL-адресу, и вы использовали заголовок запроса Accept-language, чтобы определить, какой из них отправить, а клиент не принял ни один из доступных вам языков, тогда 406 будет правильным выбором.

person Quentin    schedule 09.12.2014