At One Place

HTTP 300 — Multiple Choices

HTTP 300
Multiple Choices
The requested URL has several representations and the server is not choosing between them.

What 300 actually means

The resource exists in more than one form — different languages, different formats, different qualities — and the server is handing back a list rather than picking one. There is no standard machine-readable format for that list, which is why almost nobody uses it: content negotiation via `Accept` headers solves the same problem without a round trip. Apache's MultiViews can still produce one when a filename matches several files.

Common causes

  • Apache `MultiViews` found several files matching one request path
  • A server implementing transparent content negotiation offered the options
  • A resource genuinely available in several formats with no server-side preference

If you're just trying to view the page

  1. Pick one of the offered links if the page lists them
  2. Nothing else to do — this is a server configuration choice, not an error on your end

If it's your site

  1. Prefer `Accept`-header negotiation with a `Vary` response header over returning 300
  2. If you must return 300, include a `Location` header with the server's preferred choice so simple clients can follow it
  3. Turn off `MultiViews` in Apache if you did not mean to enable extension-less negotiation

Reference

Status code
300
Reason phrase
Multiple Choices
Category
3xx — Redirection
Cacheable by default
Yes
Defined in
RFC 9110 §15.4.1

Common questions

What does HTTP 300 mean?
The requested URL has several representations and the server is not choosing between them. The resource exists in more than one form — different languages, different formats, different qualities — and the server is handing back a list rather than picking one. There is no standard machine-readable format for that list, which is why almost nobody uses it: content negotiation via `Accept` headers solves the same problem without a round trip.
How do I fix a 300 error?
Pick one of the offered links if the page lists them
Is 300 a client error or a server error?
300 is in the 3xx range, which means redirection. It is not an error at all.

Related pages

Sources

  1. Hypertext Transfer Protocol (HTTP) Status Code Registry — IANA
  2. RFC 9110: HTTP Semantics — IETF

How these figures are compiled and checked