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">

ここで私の質問: 誰かが有効なロケール (通常、私の Web サイトでサポートされているローカル) でページを要求したが、現在のページがそのロケールで利用できない場合はどうすればよいですか?

現在、「このコンテンツはあなたの国では利用できません」というページに書き込み、HTTP ステータス コード 404 Not Foundで応答して、検索エンジンがこのページをインデックスしないようにしています。

HTTP ステータス コード 406 Not Acceptableを利用して、検索エンジンがこのページが他の言語でも利用できることをよりよく理解できるようにすることはできますか? そのステータスコードは適切でしょうか? もしそうなら、ユーザーにページを表示すると同時に代替リンクで応答するにはどうすればよいでしょうか? これはRFCが言うことです:

HEAD リクエストでない限り、レスポンスには、ユーザーまたはユーザー エージェントが最も適切なものを選択できる、利用可能なエンティティの特性と場所のリストを含むエンティティを含める必要があります (SHOULD)。

ありがとう!

4

1 に答える 1

1

言語ごとに異なる URL を使用しているため、このインスタンスで使用する適切なステータス コードは 404 です。

異なる言語リソースがすべて同じ URL で利用可能であり、Accept-languageリクエスト ヘッダーを使用して送信するリソースを決定し、クライアントが利用可能な言語のいずれも受け入れなかった場合、406 が正しい選択になります。

于 2014-12-09T09:33:29.197 に答える