Apache 2.4 代理包含 /#/ 的 URL 会删除锚点之外的所有内容

Apache 2.4 代理包含 /#/ 的 URL 会删除锚点之外的所有内容

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 的行为正确,因此答案可能是“你不能那样做”。

答案1

你不能这么做。

# 后面的所有内容都是锚点,它根本不会发送到服务器,而只是由浏览器使用,要么直接通过引用文档中的锚点,要么通过 javascript。

相关内容