我想在我的应用程序网关v2或其他方式实现重写规则,如果在Azure上存在。
在应用程序网关上,我为部署到webapp 1的主站点(我称为www.example.com)设置2个基于路径的规则mywebsite.it:
1-如果我到达mywebsite.it/function*,它会将流量正确地重定向到webapp 2;
2-如果我从mywebsite.it/myapplication*(例如www.example.com)访问mywebsite.it/myapplication/images/xyz,则应用程序以www.example.com开始mywebsite.it/function*。此规则还指向webapp 2;
我想在场景2中执行此操作。从mywebsite.it/myapplication/images/xyz,应用仅更改/myapplication/的重写,例如mywebsite.it/function/images/xyz。我需要在重写操作中保留函数/* 之后的路径(它不是静态的,每次用户从www.example.com发出请求时都会更改mywebsite.it/myapplication*)
我尝试配置重写,但它不工作:
我不能尝试评估路径Map,因为在我们的http设置应用到路径基础规则(是相同的,因为Web应用程序是相同的),覆盖后端路径是启用/。没有它的应用程序不工作。
任何帮助都非常感谢
2条答案
按热度按时间nle07wnf1#
建议您为“要匹配的模式”和“URL路径值”设置正确的值,并根据下面的Microsoft文档为HTTP头重写创建require对象。因为您似乎为“要匹配的模式”和“URL路径值”设置了错误的值。
参考:https://learn.microsoft.com/en-us/azure/application-gateway/rewrite-http-headers-portal
pbgvytdp2#
要匹配的模式是一个正则表达式。在正则表达式中,正斜杠(“/”)是保留字符,因此必须使用反斜杠(“”)对其进行转义,因此它应类似于(“/”)。使用regex101.com测试正则表达式,并确保在预期时获得匹配,在不预期时不获得匹配。