如何在 Apache 中将部分 URL 传递给 ProxyPass
Posted
技术标签:
【中文标题】如何在 Apache 中将部分 URL 传递给 ProxyPass【英文标题】:How to pass part of URL to ProxyPass in Apache 【发布时间】:2018-08-07 09:44:23 【问题描述】:我正在访问 URL http://example.com/ws/abc。现在我需要使用 URL https://server.com/abc 代理服务器。
我尝试了以下 2 种代理方法。但它不起作用。
RewriteRule ^/ws/(.*) "https://server.com/$1" [P]
ProxyPassMatch ^/ws/(.*) https://server.com/$1
可能的问题是什么?
我似乎无法从 URL 中获得 abc
。我得到/ws/abc
。
【问题讨论】:
【参考方案1】:您使用的 RewriteRule 和 ProxyPassMatch 完全匹配,因此只有 RewriteRule 被解释,我建议您采用更简单的方法,仅使用 proxypass 指令。如果我正确理解了您要代理的内容,那将是:
ProxyPass /ws/ https://server.com/
ProxyPass /abc/ https://server.com/
首先将匹配 /ws/ 之后的所有内容并将其附加到 https://server.com/,第二个将匹配 /abc/ 之后的所有内容并将其附加到 https://server.com/
【讨论】:
以上是关于如何在 Apache 中将部分 URL 传递给 ProxyPass的主要内容,如果未能解决你的问题,请参考以下文章
在 JavaScript 中将多个数组值作为 url 变量传递