如何在 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 变量传递

如何在http get中将多个字符串传递给一个url?

如何在 laravel 5.8 中将变量传递给路由?

如何在php中将div值传递给mysql查询[关闭]

如何在 Alamofire Swift iOS 中将 Origin 传递给 Header?

在请求中将数字作为URL中的参数传递:PHP