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

请问,可以通过什么配置解决嘞?

邀请回答
提问于 2020-09-28 09:40
592 次浏览
共1个回答

发表评论
  • 陶辉
    2020-09-30 10:35

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


    1
    回复
    举报
提问者

像雾像雨又像风

暂无个人介绍

  • 3

    文章

  • 0

    粉丝

  • 1

    被赞

像雾像雨又像风
按Enter键发送
您已邀请位用户
版权所有©F5 Networks,Inc.保留所有权利。京ICP备16013763号-5