我需要对通过查询参数传递的 URL 进行代理调用,例如:我的 nginx 代理部署在:https://myproxy.net
如果重定向参数未经过 URL 编码,我可以使用此块进行调用:
location /basepath {
if ( $arg_redirect = '') {
return 400 "Missing redirect directive in request";
}
proxy_pass $arg_redirect;
proxy_intercept_errors on;
error_page 301 302 307 = @handle_redirects;
}
错误被拦截,然后 @handle_redirects 处理可能在新目的地弹出的其他 30X 代码。
这适用于以下请求
GET
::https://myproxy.net/basepath?redirect=https://destination.com/somepath/uuid
我需要做什么才能使其工作
GET
::https://myproxy.net/basepath?redirect=https%3A%2F%2Fdestination.com%2Fsomepath%2Fuuid
此外,作为规范的一部分,它必须是纯 nginx,而不是附加模块、lua 等。谢谢!