要解决nginx代理后问号(?)被转码为%3F的问题,你可以尝试在nginx配置中使用proxy_set_header
指令来手动设置URL中的特殊字符。
例如,假设你要将请求代理到目标服务器时保留原始URL中的问号不被转码,你可以添加以下配置:
location / {
proxy_pass http://your_upstream_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# 添加以下指令
proxy_set_header X-Original-URI $request_uri;
}
通过设置X-Original-URI
头部,将原始URI传递给目标服务器。然后,在目标服务器中就可以使用该头部获取到未经过编码的原始URL。这样就避免了问号被转码的问题。请根据实际情况进行相应的调整和配置。
内容由零声教学AI助手提供,问题来源于学员提问