Azure函数应用程序代理正在删除查询字符串

o2g1uqev  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(115)

一个简单的,简单的代理重定向到我们的www子域导致查询字符串被剥离。
这是没有道理的。
获取此URL.. https://mydomain.ok/whatever?foo=something
应重定向到.. https://www.mydomain.ok/whatever?foo=something
而是当前重定向到.. https://www.mydomain.ok/whatever
任何帮助都将不胜感激。很难正确地测试它。
对于以下各项,REDIRECT_TO_WEBSITE=www.domain.com
以下是配置示例:

{
  "$schema": "http://json.schemastore.org/proxies",
  "proxies": {
    "api": {
      "matchCondition": {
        "route": "/api/{*path}"
      },
      "backendUri": "https://%WEBSITE_HOSTNAME%/api/{path}"
    },
    "rest": {
      "matchCondition": {
        "route": "{*rest}"
      },
      "responseOverrides": {
        "response.statusCode": "302",
        "response.headers.Location": "https://%REDIRECT_TO_WEBSITE%/{rest}",
      },
    }
  }
}
k7fdbhmy

k7fdbhmy1#

在另一个SO问题上找到了答案:Azure Function Proxies Multiple Query parameters with the same name
您只需将request.querystring添加到backend.request.querystring

"requestOverrides": {
    "backend.request.querystring": "request.querystring"
}

因此,您的配置应为:

{
  "$schema": "http://json.schemastore.org/proxies",
  "proxies": {
    "api": {
      "matchCondition": {
        "route": "/api/{*path}"
      },
      "backendUri": "https://%WEBSITE_HOSTNAME%/api/{path}"
      "responseOverrides": {
        "backend.request.querystring": "request.querystring"
      },
    },
    "rest": {
      "matchCondition": {
        "route": "{*rest}"
      },
      "responseOverrides": {
        "response.statusCode": "302",
        "response.headers.Location": "https://%REDIRECT_TO_WEBSITE%/{rest}",
        "backend.request.querystring": "request.querystring"
      },
    }
  }
}

值得指出的是,根据该帖子的一位评论者:* ...“继续使用.NET 6.0以上版本不支持函数代理,请改用API管理服务”*

相关问题