TrueURL
TrueURL

菜单

300 多种选择

资源有多种表示形式,客户端可以从中选择。即使带有 Location 响应头,浏览器也不会自动跟随 300。

原因短语
Multiple Choices
是否重定向
否
默认可缓存
是

300 Multiple Choices 表示目标资源有不止一种表示形式,每种都有自己的 URL,服务器希望由用户或用户代理来选择。典型的例子是同一文档的不同语言版本或不同文件格式。响应体应以链接形式列出这些选项。

如果服务器有首选项,应在 Location 响应头中发送该 URL。RFC 9110 允许用户代理自动跟随它,但浏览器并不会这样做:Fetch 标准只跟随 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 这一步,因此在审查重定向时应把它视为重定向链的终点。

常见原因与使用场景

  • Apache 的 mod_speling 找到多个可能与拼错的 URL 匹配的文件,并将它们列出。
  • 内容协商列出可用的语言或格式版本,而不是自行选择一个。
  • API 提供同一文档的多种格式,让客户端自行选择。

URL 重定向检测

使用免费的 TrueURL 重定向检测工具,逐跳查看一个 URL 返回的每一个状态码。