Apache ProxyPass:将请求的 URL 作为 GET 参数传递到目标 URL

Apache ProxyPass:将请求的 URL 作为 GET 参数传递到目标 URL

你好,我正在尝试设置 ProxyPass 将请求的 URL 作为 GET 参数传递给目标 URL,但我不知道如何在配置文件中写入它。

我尝试了这样的事情:

ProxyPass ^(.*)$ http://example.com/?url=$1
ProxyPassReverse ^(.*)$  http://example.com/?url=$1

但它不起作用。你能帮助我吗?谢谢!

答案1

你应该使用ProxyPassMatch指令,如果你想使用正则表达式,但正如ProxyPass指令性文件

网址是远程服务器的部分 URL,不能包含查询字符串。

因此,你将必须使用RewriteRule指示并设置[P]旗帜使该请求被作为代理请求来处理mod_proxy

尽管这可能需要一些调整,但起点可能是:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/foo
RewriteRule ^(.*)$ /foo?url=$1 [P]
ProxyPass /foo http://example.com/
ProxyPassReverse /foo http://example.com/

相关内容