Nginx反向代理路径中有问号、井号问题
问题描述:
想要通过代理转发路径到后台的服务器,但是路径有包含有问号和井号,问号的问题,通过$query_string可以解决,但是井号一直解决不了。
只带问号的路径:
http://192.168.113.138:10080/test_elap/?/id=544422
通过此配置解决:
location ~* /test_elap/ {
proxy_pass http://192.168.113.125:680/?$query_string;
index index.html;
}
服务器被访问路径:
GET /?/id=544422
以上为自己摸索的配置。
带井号的路径:
http://192.168.113.138:10080/test_elap/?#/id=544422
想实现效果:
GET /?#/id=544422
请问,可以通过什么配置解决嘞?
邀请回答


共1个回答
URL必须符合规则,基于规则,/id=544422是fragment,而浏览器是不会将fragment发送给服务器的,因此所有广为使用的代理服务器都不会转发#后的fragment,Nginx的任何变量也取不到它,这更多是从web安全问题角度出发的。如果你确实想把#号传给上游,应当在请求端做URL编码,不把/id=544422当成fragment