如何使用 Azure Front Door Rules Engine 匹配条件将请求仅匹配到站点的根目录?
How can I use an Azure Front Door Rules Engine match condition to only match requests to the root of a site?
我正在尝试在我的 Azure Front door 上设置一组规则,以将所有请求重定向到站点的根到一组基于语言的子文件夹传入请求的位置匹配。
执行地理位置部分相当简单,但我没有成功地将请求限制在网站的根目录 - 或者至少当我尝试这样做时,我的规则没有出现匹配,但我没有得到我期望的重定向。
我试过设置以上条件:
IF "Request Path" EQUAL "/"
AND IF "Remote address" "Geo Match" "Switzerland, CH"
THEN "Routing Configuration" "Redirect" "307"
Host: Preserve;
Destination Path: Replace: "/de-ch/"
但是,当我从位于瑞士的浏览器请求站点的根目录时,我似乎没有获得重定向。
我找不到将规则引擎与路径或匹配一起使用的任何实际示例,所以我想知道我是否应该使用“Request URL”(因此我需要将方案和主机放在那里,这不太理想,因为规则集可能与多个前端主机一起工作),或者我正在做的事情应该工作吗?
“请求路径”匹配条件似乎与初始 /
之后的路径匹配,例如给定请求:
https://www.example.com/folder/page.html
匹配条件中使用了以下值:
Request Path: folder/page.html
Request URL: https://www.example.com/page.html
Request File Extension: html
Request Filename: page.html
因此,我不得不使用请求 URL 条件并将我的规则限制在请求中的特定域,以确保我们只匹配根请求。
我还没有尝试指定 Not Any
的运算符,尽管这也可能是一个解决方案(我们需要超过 25 条规则,这是一个进一步的限制,所以最终使用了不同的解决方案)。
我正在尝试在我的 Azure Front door 上设置一组规则,以将所有请求重定向到站点的根到一组基于语言的子文件夹传入请求的位置匹配。
执行地理位置部分相当简单,但我没有成功地将请求限制在网站的根目录 - 或者至少当我尝试这样做时,我的规则没有出现匹配,但我没有得到我期望的重定向。
我试过设置以上条件:
IF "Request Path" EQUAL "/"
AND IF "Remote address" "Geo Match" "Switzerland, CH"
THEN "Routing Configuration" "Redirect" "307"
Host: Preserve;
Destination Path: Replace: "/de-ch/"
但是,当我从位于瑞士的浏览器请求站点的根目录时,我似乎没有获得重定向。
我找不到将规则引擎与路径或匹配一起使用的任何实际示例,所以我想知道我是否应该使用“Request URL”(因此我需要将方案和主机放在那里,这不太理想,因为规则集可能与多个前端主机一起工作),或者我正在做的事情应该工作吗?
“请求路径”匹配条件似乎与初始 /
之后的路径匹配,例如给定请求:
https://www.example.com/folder/page.html
匹配条件中使用了以下值:
Request Path: folder/page.html
Request URL: https://www.example.com/page.html
Request File Extension: html
Request Filename: page.html
因此,我不得不使用请求 URL 条件并将我的规则限制在请求中的特定域,以确保我们只匹配根请求。
我还没有尝试指定 Not Any
的运算符,尽管这也可能是一个解决方案(我们需要超过 25 条规则,这是一个进一步的限制,所以最终使用了不同的解决方案)。