你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

URL 重写

Azure Front Door 支持 URL 重写,以更改路由到源的请求路径。 URL 重写允许设置条件,以确保只有在满足某些条件时才能重写 URL 或指定的标头。 这些条件基于请求和响应信息。

使用此功能,可以根据最终用户的设备类型或请求的文件类型将其重定向到不同的源。 可以在规则集配置中找到 URL 重写操作。

规则集配置中 URL 重写操作的屏幕截图。

源模式

源模式是要替换的初始请求中的 URL 路径。 当前,源模式使用基于前缀的匹配。 若要匹配所有 URL 路径,可以使用正斜杠 (/) 作为源模式值。

对于 URL 重写操作中的源模式,只考虑路由配置中要匹配的模式之后的路径。 例如,有以下传入 URL 格式 contoso.com/pattern-to-match/source-pattern,规则集仅将 /source-pattern 视为要重写的源模式。 在应用 URL 重写后,输出的 URL 格式为 contoso.com/pattern-to-match/destination

对于需要移除 URL 的 /pattern-to-match 段时的情况,请将路由配置中源组的源路径设置为 /

目标

用于替换源模式的目标路径。 例如,如果请求 URL 路径为 contoso.com/foo/1.jpg,源模式为 /foo/,且目标为 /bar/,则将从源的 contoso.com/bar/1.jpg 提供服务。

暂留不匹配的路径

通过暂留不匹配的路径,可将源模式后面的剩余路径追加到新路径。 当暂留不匹配路径设置为“否”(默认值)时,将移除源模式后面的剩余路径。

暂留不匹配的路径 源模式 目标 传入的请求 从源提供的内容
/ /foo/ contoso.com/sub/1.jpg /foo/sub/1.jpg
/sub/ /foo/ contoso.com/sub/image/1.jpg /foo/image/1.jpg
/sub/ /foo/2.jpg contoso.com/sub/image/1.jpg /foo/2.jpg

重要

Azure Front Door(经典版)将于 2027 年 3 月 31 日停用。 为了避免任何服务中断,请务必在 2027 年 3 月之前将 Azure Front Door(经典版)配置文件迁移到 Azure Front Door 标准层或高级层。 有关详细信息,请参阅 Azure Front Door(经典版)停用

Azure Front Door(经典版)通过在配置转发路由类型规则时配置自定义转发路径来支持 URL 重写。 默认情况下,如果只定义了正斜杠 (/*),Front Door 会将传入的 URL 路径复制到已转发请求中使用的 URL。 已转发请求中使用的主机标头与为选定后端配置的主机标头一样。 有关详细信息,请参阅后端主机头

URL 重写的强大之处在于,自定义转发路径会将与通配符路径匹配的传入路径的任何部分复制到已转发路径。

下表显示了当使用自定义转发路径 /fwd/ 作为带有通配符的匹配路径时,传入请求和相应已转发路径的示例。 路径的 a/b/c 部分表示替换通配符的部分。

传入 URL 路径 匹配路径 自定义转发路径 已转发路径
/foo/a/b/c /foo/* /fwd/ /fwd/a/b/c

URL 重写示例

考虑配置了以下前端主机和路径的组合的传递规则:

主机 路径
[www.contoso.com](www.contoso.com) /*
/foo
/foo/*
/foo/bar/*

下表中的第一列显示了传入请求的示例,第二列显示了定义的最具体的匹配路由。 表中接下来的三列是自定义转发路径的示例。

例如,对于 www.contoso.com/sub 的传入请求,第二行读取,如果自定义转发路径为 /,则已转发路径将为 /sub。 如果自定义转发路径为 /fwd/,则已转发路径为 /fwd/sub。 路径中强调的部分表示通配符匹配的部分。

传入的请求 最确切的匹配路径 / /fwd/ /foo/ /foo/bar/
www.contoso.com/ /* / /fwd/ /foo/ /foo/bar/
www.contoso.com/sub /* /sub /fwd/sub /foo/sub /foo/bar/sub
www.contoso.com/a/b/c /* /a/b/c /fwd/a/b/c /foo/a/b/c /foo/bar/a/b/c
www.contoso.com/foo /foo / /fwd/ /foo/ /foo/bar/
www.contoso.com/foo/ /foo/* / /fwd/ /foo/ /foo/bar/
www.contoso.com/foo/bar /foo/* /bar /fwd/bar /foo/bar /foo/bar/bar

注意

Azure Front Door(经典版)仅支持将 URL 从静态路径重写到另一个静态路径。 Azure Front Door Standard 和 Premium 支持暂留不匹配路径。 有关详细信息,请参阅保留不匹配的路径

可选设置

还可以为任何给定的传递规则设置指定其他可选设置:

  • 缓存配置 - 如果禁用或未指定,与此传递规则匹配的请求不会尝试使用缓存内容,而是会始终从后端提取内容。 有关详细信息,请参阅 Azure Front Door 的缓存

后续步骤