要防止nginx代理后问号(?)被转码为%3F,你可以使用proxy_set_encoded_slashes
指令来控制是否对URL中的特殊字符进行编码。
在nginx配置中添加以下配置:
location / {
proxy_pass http://your_upstream_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# 添加以下指令
proxy_set_encoded_slashes off;
}
通过设置proxy_set_encoded_slashes off;
,禁用对URL中特殊字符的编码。这样就能保持问号(?)不被转码为%3F。请注意,这个配置可能会导致其他问题,如URL路径中带有特殊字符时可能会出现问题,需要根据实际情况进行评估和调整。
内容由零声教学AI助手提供,问题来源于学员提问