Apache 2.4 反向代理,像 /call/#/whatever/method 这样的 url 总是作为 /call/ 向上游传递,这会破坏显然在服务器端使用锚点的应用程序。
我已经尝试了带有“nocanon”参数的 ProxyPass(在 Location 块内部和外部),以及带有 [NE,P] 的 RewriteRule(这也应该暗示 nocanon)。
POC 配置很简单,类似于:
RewriteEngine on
RewriteRule "^/(.*)" "http://localhost:8080/$1" [NE,P]
或者...
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
有没有人有这种事情的经验,可以阐明如何在上游 URL 中包含片段?
RFC 3986 对片段标识符及其在 URL 处理中的作用的描述意味着 Apache 的行为是正确的,所以答案可能是“你不能那样做”。
你不能那样做。
# 之后的所有内容都是一个锚点,它根本不会发送到服务器,它只是被浏览器使用,或者直接通过引用文档中的锚点,或者通过 javascript。