你好,我正在尝试设置 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/