ProxyPass não funciona junto com ProxyPassMatch

ProxyPass não funciona junto com ProxyPassMatch

Então, no momento, tenho um host virtual configurado em minha instância do Oracle HTTP Server com um ProxyPass como tal:

ProxyPass ^/test/home/ https://example.com/
ProxyPassMatch ^/test/home/(.*)$ https://example.com/$1
ProxyPassReverse ^/test/home/(.*)$ https://example.com/$1

Quando tento acessar https://mywebsite.com/test/home/<url_from_other_server>a solicitação parece estar funcionando conforme o esperado. No entanto, quando tento acessá-lo, https://mywebsite.com/test/home/ele não está fazendo proxy, https://example.com/mas sim retornando um 404.

O ProxyPassMatchcuringa parece estar funcionando para todos os suburls que tento acessar, mas a ProxyPasspalavra-chave normal não.

Também tentei remover ProxyPasscompletamente e recebo o mesmo erro 404 ao tentar acessar /test/home/

Alguém tem alguma ideia do que poderia estar causando esse comportamento estranho?

Obrigado.

Responder1

Seu regex não está totalmente correto. *significa "zero ou mais ocorrências", portanto https://mywebsite.com/test/home/é correspondido por ele. Mude (.*)para (.+), que significa "uma ou mais ocorrências". Então seu ProxyPassMatch não deverá mais corresponder a esse URL.

Ou apenas remova a linha ProxyPassMatch completamente, é bastante inútil, os URLs são tratados automaticamente pela linha ProxyPass.

ProxyPass /test/home/ https://example.com/
ProxyPassReverse /test/home/ https://example.com/

Responder2

A questão foi abordada. A configuração correta para este problema específico é a seguinte:

ProxyPass /test/home(.*)$ https://example.com/$1
ProxyPassReverse /test/home(.*)$ https://example.com/$1

Remover a barra e adicionar o curinga nos permitiu fazer proxy de qualquer coisa a seguir /test/home.

Obrigado a todos pela sua contribuição.

informação relacionada