我目前正在将环境从带有 WAF 的 Azure 应用程序网关 V2 迁移到 Azure FrontDoor Premium。我必须解决应用程序网关规则引擎中的应用程序行为。不幸的是,该应用程序有一个无法修复的错误,因此作为解决方法,我目前正在重写 HTTP 位置重定向。
尝试在 Azure FrontDoor Premium 上重新创建规则时,我发现规则配置中的操作允许我修改响应。但是,我缺少一个根据 HTTP 响应中返回的位置标头做出反应和修改响应的条件。
到目前为止,我还没有找到一种方法来反应和修改重定向。此外,我不想修改应用程序的所有响应,因为大多数返回的位置标头都是正确的。
是否可以创建一个条件,然后使用 Azure FrontDoor Premium 以这种方式重写 HTTP 响应?
是否可以创建一个条件,然后使用 Azure Front Door Premium 以这种方式重写 HTTP 响应?
在 AFD 中这是不可能的。 Azure 前门规则引擎不支持像应用程序网关那样重写位置响应标头,它可以将原始值保存在变量中并使用它们进行重写。 Azure Front Door 只允许您将其重写为特定值,并且不能存在基于响应标头的匹配条件。
The MsDoc 指出 Front Door 中没有办法重写位置响应标头来修复 301 响应。我们只能在 AFD 规则引擎中追加、覆盖或删除特定的响应标头。
要实现此目的,您需要使用有关请求的一些其他参数来引发重定向和位置标头,然后基于该参数进行重写。
如果您可以预见会导致源重定向到自身的条件,您可以为此创建请求标头/url 路径/任何条件,并重写位置响应标头。您必须修复原点,以便它生成到正确位置的重定向,而不是返回到其自身。
您可以使用应用程序网关,这种架构是保留原始的HTTP主机名。通常不建议重写主机标头或位置标头。
参考: