ProxyPassMatch 正则表达式不匹配

ProxyPassMatch regex does not match

使用 Apache 2.2.15,我试图设置一个 ProxyPassMatch 规则,仅当 "year" 参数等于 2015 时才匹配以下请求:

/my-servlet/DownloadPdf?param1=40978659700000&year=2015&param3=testrv%2540rv.com

我知道以下配置符合我的要求并且有效:

ProxyPassMatch /my-servlet/(.*)$ balancer://mycluster

但我想要这样的东西,但它不起作用:

ProxyPassMatch /my-servlet/(.*year=2015.*)$ balancer://mycluster

我也尝试了其他匹配请求的正则表达式,但未成功:

ProxyPassMatch /my-servlet/.*year=2015.* balancer://mycluster
ProxyPassMatch /my-servlet/.*year=2015.*$ balancer://mycluster

我不明白我的配置有什么问题?

摘自mod_proxy docs

The path is the name of a local virtual path; url is a partial URL for the remote server and cannot include a query string.

没有测试,但可能的解决方法:

RewriteEnginge On
RewriteCond %{QUERY_STRING} year=2015
RewriteRule (.*) balancer://mycluster [P]

让我们知道它是否完成了工作,如果没有完成则更是如此 ;)