如何在 Apache 中通过 ProxyPass 传递参数

如何在 Apache 中通过 ProxyPass 传递参数

我正在尝试做但遇到困难的是:

我有一个 apache 服务器,它可以捕获某些 url,对于其中一些 url,它将使用 ProxyPass(或 mod_rewrite)将某些内容作为反向代理传递到另一个 apache 实例。

所以我得到了这样的网址:

/index.php/info?format=xml&token=SOMENUMERICTOKEN&token=SUMENUMERICTOKEN

我试过了 :

PassProxy /index.php/info?format=xml https://1.2.3.4:567/index.php/info?format=xml

和相关的 ProxyReverse,但它不起作用

还尝试使用相同的行和 [P] 结尾重写以进行代理。

它们都不起作用。

如果我以 /index.php 结尾,它们就会起作用,但我无法允许访问 index.php

答案1

ProxyPass 仅对匹配的 URL 部分进行操作,而不对查询字符串进行操作。如果您在模式中包含查询字符串,您将永远无法获得匹配。

因此,为了做你想做的事情,你可以使用类似以下的方法:

ProxyPass /index.php/info https://1.2.3.4:567/index.php/info

尽管在这种情况下你甚至可能可以使用:

ProxyPass / https://1.2.3.4:567/

基本上,将 proxypass 视为一种“搜索和替换”。“ProxyPass A B”基本上意味着“在 URL 中查找 A,如果找到,则用 B 替换”。

答案2

好的。

我刚刚将 /index.php/info 留在 ProxyPass 中,它就起作用了。也许是转义 ? 标记出了问题。

作品。

相关内容