通过 proxy_pass 在 URL 中修改参数

我有一个 URL,像这样: http://test1.com/_a/client/#/room/!zzz:test2.com

我想替换这个参数 test2.com 为一个 IP 地址和端口,像这样:

http://test1.com/_a/client/#/room/!zzz:192.x.x.x:80

我该怎么用 nginx 实现? 这是我的做法:

location /_a/client/#/room/ {
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_pass http://127.0.0.1/_a/client/#/room/!zzz:192.x.x.x:80;
}

但是它不能工作。

点赞
用户1695906
用户1695906

没有任何 Web 服务器或代理能够看到 URL 中的 # 号或它所跟随的任何内容,因为浏览器不会发送该 URL 的这一部分,也就是所谓的 _fragment_(片段)。

这些片段仅对浏览器可见。它们不会被发送到服务器,因此无法在服务器上修改它们。

2018-04-04 23:24:09