apache 2.4 ProxyPassMatch使用“ - ”

时间:2016-12-14 17:40:55

标签: apache proxy reverse-proxy

我尝试在我的2个本地主机

之间创建代理通信

我想为http://my-webapp.localhost/test-nc/mnm/resthttp://other.localhost/mnm/rest

的所有uri创建代理

这是我的代理配置

    ProxyPass /test-nc/mnm/rest http://other.localhost/mnm/rest
    ProxyPassReverse /test-nc/mnm/rest http://other.localhost/mnm/rest
    Header add "Access-Control-Allow-Origin" "*"
    ProxyPassMatch ^/test\-nc/mnm/rest/(.*) http://other.localhost/mnm/rest/$1

这不起作用,但如果从uri使用其他 test-nc 而没有“ - ”(破折号)正常工作

这项工作(但我必须使用test-nc)

http://my-webapp.localhost/testnc/mnm/rest/aa/1/as2serverrules致电http://other.localhost/mnm/rest/aa/1/as2serverrules

    ProxyPass /testnc/mnm/rest http://other.localhost/mnm/rest
    ProxyPassReverse /testnc/mnm/rest http://other.localhost/mnm/rest
    Header add "Access-Control-Allow-Origin" "*"
    ProxyPassMatch ^/testnc/mnm/rest/(.*) http://other.localhost/mnm/rest/$1

如何正确使用代理配置中的网址内的“ - ”?

1 个答案:

答案 0 :(得分:0)

一个解决方案是用rewriterule替换proxypass

RewriteRule /test-nc/mnm/rest/(.*) http://other.localhost/mnm/rest/ $ 1 [NE,P],

但是我找不到任何针对proxyPass的解决方案