URL 重定向具有源 URL、目标 URL、状态码,以及一些影响其 URL 匹配行为和运行时行为的其他参数。
API 字段:source_url String
传入请求 URL 必须匹配才能应用重定向的 URL 字符串。此属性为必填项。源 URL 的最大长度为 32 KB。
该值必须是有效的 URL,但 URL scheme 不是必需的(例如 https);省略 scheme 时,重定向同时适用于 http 和 https URL scheme。
一个 Bulk Redirect List 不能包含多个源 URL 完全相同的 URL 重定向。 URL 匹配算法(将传入请求与重定向的源 URL 匹配)的确切行为取决于 Include subdomains(包含子域名) 和 Subpath matching(子路径匹配) 参数的值。
有关受支持的 URL 组件的更多信息,请参阅 Supported URL components in Bulk Redirects。
API 字段:target_url String
当存在与 URL 重定向的匹配时,客户端将被重定向到的 URL。此属性为必填项。目标 URL 的最大长度为 32 KB。
该值必须是有效的 URL。最终目标 URL 取决于 Preserve query string(保留查询字符串) 和 Preserve path suffix(保留路径后缀) 参数的值。
有关受支持的 URL 组件的更多信息,请参阅 Supported URL components in Bulk Redirects。
API 字段:subpath_matching Booleandefault: false
如果为 true,当前重定向在确定是否匹配当前 URL 重定向时,将对请求 URL 应用子路径匹配算法。
例如,从 /my-folder/ 到 /other-folder/ 且启用了 Subpath matching(子路径匹配) 的 URL 重定向,也会将 /my-folder/item 的请求重定向到 /other-folder/item。但是,仅当 Preserve path suffix(保留路径后缀) 为 true 时,重定向才会包含 item 部分。
更多信息请参阅 Matching the source URL of redirects。
API 字段:include_subdomains Booleandefault: false
如果为 true,源 URL 主机名也将应用于任何子域名——重定向将匹配源 URL 域名部分左侧的所有子域名,以及指定的域名。
例如,源 URL 定义为 http://example.com/about 的重定向也将应用于源 URL 为 http://a.example.com/about 或 http://a.b.example.com/about 的请求。
更多信息请参阅 Matching the source URL of redirects。
API 字段:preserve_query_string Booleandefault: false
如果为 true,重定向 URL 将保留原始请求的查询字符串。
例如,从 /my-folder/ 到 /other-folder/ 且启用了 Preserve query string(保留查询字符串) 的 URL 重定向,会将 /my-folder/?name=value 的请求重定向到 /other-folder/?name=value。如果禁用了 Preserve query string(保留查询字符串),请求将从 /my-folder/?name=value 重定向到 /other-folder/。
API 字段:preserve_path_suffix Booleandefault: true
仅在启用 Subpath matching(子路径匹配) 时适用。如果为 true,定义重定向 URL 将包含源 URL 的剩余(未匹配)路径元素(如有)。
例如,当同时启用 Subpath matching(子路径匹配) 和 Preserve path suffix(保留路径后缀) 时,从 /my-folder/ 到 /another-folder/ 的 URL 重定向会将 /my-folder/foo 的传入请求重定向到 /another-folder/foo。如果禁用了 Preserve path suffix(保留路径后缀),同一请求仍会匹配 URL 重定向,但会从 /my-folder/foo 重定向到 /another-folder/。
API 字段:status_code Integerdefault: 301
API 值:301、302、307 或 308。
重定向时返回给客户端的 HTTP 状态码:
- 301 - Permanent Redirect:页面已永久移动到新地址。对于
POST请求,客户端或浏览器在跟随重定向时可能将 HTTP 方法切换为GET。 - 302 - Temporary Redirect:页面已临时移动到新地址。对于
POST请求,客户端或浏览器在跟随重定向时可能将 HTTP 方法切换为GET。 - 307 - Advanced: Temporary, HTTP method preserved:页面已临时移动到新地址。客户端或浏览器在跟随重定向时必须保留原始 HTTP 方法(例如
POST)。 - 308 - Advanced: Permanent, HTTP method preserved:页面已永久移动到新地址。客户端或浏览器在跟随重定向时必须保留原始 HTTP 方法(例如
POST)。