Apache ProxyPassMatch与regex

Apache ProxyPassMatch与regex,apache,reverse-proxy,Apache,Reverse Proxy,我想代理传递的url看起来像这样,你能帮我找出正确的正则表达式吗。我是阿帕奇新手 https://example.com/v1/documents?uri=root/support/bugtracking/attachments/29099/support-log.txt 我想将root/support/bugtracking/attachments/29099/support log.txt传递到https://other-server/download.xqy?file=root/suppo

我想代理传递的url看起来像这样,你能帮我找出正确的正则表达式吗。我是阿帕奇新手

https://example.com/v1/documents?uri=root/support/bugtracking/attachments/29099/support-log.txt

我想将
root/support/bugtracking/attachments/29099/support log.txt
传递到
https://other-server/download.xqy?file=root/support/bugtracking/attachments/29099/support-log.txt

目前,我的以下配置似乎不起作用:

<VirtualHost *:443>
    ServerName example.com

    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:!LOW
    SSLCertificateFile /etc/httpd/certs/cert.pem
    SSLCertificateKeyFile /etc/httpd/certs/key.pem
    SSLCACertificateFile /etc/httpd/certs/ca.cert.pem

    ProxyRequests Off
    ProxyPreserveHost On

    ProxyPass / http://localhost:9050/
    ProxyPassReverse / http://localhost:9050/
    ProxyPassMatch ^/v1/documents?uri=(root/support/bugtracking/*)$ https://other-server.com/download.xqy?file=$1
    RequestHeader set X-Forwarded-Proto "https"
</VirtualHost>

ServerName example.com
斯伦金安
SSLProtocol all-SSLv2-SSLv3
SSLCipherSuite全部:!ADH:!出口:!SSLv2:RC4+RSA:+高:+中:!低
SSLCertificateFile/etc/httpd/certs/cert.pem
SSLCertificateKeyFile/etc/httpd/certs/key.pem
SSLCACertificateFile/etc/httpd/certs/ca.cert.pem
代理请求关闭
代理主机
ProxyPass/http://localhost:9050/
ProxyPassReverse/http://localhost:9050/
ProxyPassMatch^/v1/documents?uri=(root/support/bugtracking/*)$https://other-server.com/download.xqy?file=$1
RequestHeader集合X-Forwarded-Proto“https”

无法使用ProxyPassMatch匹配查询字符串。您必须使用mod_rewrite来完成此操作

# XXX: This creates a "worker" for this backend when
# not using ProxyPass.
<Proxy  https://other-server.com/>
# Actual thing being set is redundant
  ProxySet keepalive=On 
</Proxy>
RewriteEngine ON
RewriteCond %{QUERY_STRING} uri=(root/support/bugtracking/.*)$
RewriteRule ^/v1/documents https://other-server.com/download.xqy?file=%1 [P]
#XXX:当
#不使用ProxyPass。
#实际设置的东西是多余的
ProxySet keepalive=On
重新启动发动机
RewriteCond%{QUERY_STRING}uri=(root/support/bugtracking/*)$
重写规则^/v1/文件https://other-server.com/download.xqy?file=%1 [P]

可能无法一字不差地工作,这是一个普遍的想法,尽管我有PT标志而不是P。习惯的力量!非常感谢你。现在工作。