TrueURL
TrueURL

メニュー

300 複数の選択肢

リソースに複数の表現があり、クライアントがその中から選べることを示します。Location ヘッダーがあっても、ブラウザーは 300 を自動的にはたどりません。

リーズンフレーズ
Multiple Choices
リダイレクト
いいえ
デフォルトでキャッシュ可能
はい

300 Multiple Choices は、対象のリソースにそれぞれ独自の URL を持つ複数の表現があり、ユーザーまたはユーザーエージェントにその中から選んでほしいことを示します。典型的な例は、言語やファイル形式が異なる同じドキュメントです。ボディには、選択肢をリンク付きで一覧表示する必要があります。

サーバーに推奨する選択肢がある場合は、その URL を Location ヘッダーで送るべきです。RFC 9110 はユーザーエージェントがそれを自動的にたどることを認めていますが、ブラウザーはたどりません。Fetch Standard が自動的にたどるのは 301、302、303、307、308 だけだからです。ユーザーには、代わりにレスポンスのボディが表示されます。

300 はヒューリスティックにキャッシュ可能です。自動的なネゴシエーションは当てにならないため、ほとんどのサイトは自分でバリアントを選び、それを直接配信するか、通常のリダイレクトを使っています。

レスポンス例

HTTP
HTTP/1.1 300 Multiple Choices
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://www.example.com/guide.en.html
Content-Type: text/html; charset=utf-8
Content-Length: 102

<ul>
<li><a href="/guide.en.html">English</a></li>
<li><a href="/guide.de.html">Deutsch</a></li>
</ul>

SEO とリダイレクトチェック

300 はまれなうえにクローラーの対応も不十分なので、訪問者やボットの振り分けに頼るべきではありません。言語ごとにページを提供するには、別々の URL を用意し、hreflang アノテーションで関連付けてください。言語やデバイスに応じて訪問者をリダイレクトする場合は、302 または 307 を使い、クローラーがアクセスできるデフォルトのバージョンを残しておきます。ブラウザーは 300 で止まるため、リダイレクトを監査する際は 300 をチェーンの終点として扱ってください。

よくある原因と主な用途

  • Apache の mod_speling が、スペルミスのある URL に一致しうるファイルを複数見つけ、それらを一覧表示した場合。
  • コンテンツネゴシエーションが 1 つを選ぶ代わりに、利用可能な言語や形式のバリアントを一覧表示した場合。
  • API がドキュメントを複数の形式で提供し、クライアントに選ばせている場合。

URL リダイレクトチェッカー

無料の TrueURL リダイレクトチェッカーで、URL が返すすべてのステータスコードをホップごとに確認できます。