本文介绍如何使用 Azure 门户来配置 Azure 应用程序网关 v2 SKU 实例以重写 URL。
备注
URL 重写功能仅适用于 Standard_v2 和 Web 应用程序防火墙_v2 SKU 版应用程序网关。 在启用了 Web 应用程序防火墙的网关上配置 URL 重写时,会对重写的请求标头和 URL 进行 Web 应用程序防火墙评估。 有关详细信息,请参阅将 URL 重写或主机头重写与 Web 应用程序防火墙 (WAF_v2 SKU) 结合使用。
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
若要完成本文中的步骤,需要有应用程序网关 v2 SKU 实例。 v1 SKU 不支持重写 URL。 如果没有 v2 SKU,请在开始之前创建应用程序网关 v2 SKU 实例。
使用 Azure 帐户登录到 Azure 门户。
在以下示例中,每当请求 URL 包含 /article
时,URL 路径和 URL 查询字符串就会重写。 例如:
contoso.com/article/123/fabrikam
->contoso.com/article.aspx?id=123&title=fabrikam
选择“所有资源”,然后选择你的应用程序网关 。
在服务窗格中,选择“重写”。
选择“重写集”。
为重写集输入一个名称,并将其与路由规则相关联:
在“名称”框中输入重写集的名称。
在“关联的路由规则”列表中选择一个或多个规则。 此步骤通过传递规则将重写配置关联到源侦听器。 只选择尚未与其他重写集关联的路由规则。 已经与其他重写集关联的规则处于灰显状态。
选择下一步。
创建重写规则:
选择“添加重写规则”。
在“重写规则名称”框中输入重写规则的名称。
在“规则顺序”框中输入一个数字。
在此示例中,仅当路径包含
/article
时,我们才会重写 URL 路径和 URL 查询字符串。 若要执行此步骤,请添加条件用于评估 URL 路径是否包含/article
:选择“添加条件”,然后选择包含 If 指令的框将其展开。
在“要检查的变量的类型”列表中,选择“服务器变量”。 在此示例中,我们希望检查 URL 路径中的模式
/article
。在“服务器变量”列表中,选择
uri_path
。在“区分大小写”下选择“否”。
在“运算符”列表中选择“等于(=)”。
输入正则表达式模式。 在此示例中,我们使用
.*article/(.*)/(.*)
模式括号 ( ) 用于捕获 substring,以供稍后在编写用于重写 URL 路径的表达式时使用。 有关详细信息,请参阅模式匹配和捕获。
选择“确定”。
添加操作以重写 URL 和 URL 路径:
在“重写类型”列表中,选择“URL”。
在“操作类型”列表中,选择“设置”。
在“组件”下,选择“URL 路径和 URL 查询字符串”。
在“URL 路径值”中,输入路径的新值。 在本例中,我们使用
/article.aspx
。在“URL 查询字符串值”中,输入 URL 查询字符串的新值。 在本例中,我们使用
id={var_uri_path_1}&title={var_uri_path_2}
。{var_uri_path_1}
和{var_uri_path_2}
路径用于在计算表达式.*article/(.*)/(.*)
中的条件时获取捕获的子字符串选择“确定”。
选择“创建”以创建重写集。
验证新的重写集是否在重写集列表中显示。
观察访问日志中的以下字段,以验证是否按照预期进行 URL 重写:
originalRequestUriWithArgs
:此字段包含原始请求 URL。requestUri
:在应用程序网关上执行重写操作后,此字段将包含 URL。
有关访问日志中的所有字段的详细信息,请参阅访问日志。
有关如何设置某些常见用例的重写的详细信息,请参阅常见重写方案。