你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
URL 重写
Azure Front Door 支持 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 重写的关键方面在于,在使用通配符匹配的自定义转发路径时,能够将传入路径的任何匹配部分复制到转发路径。 下表演示了当使用 /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 的缓存。