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 ProxyPassMatch
curinga parece estar funcionando para todos os suburls que tento acessar, mas a ProxyPass
palavra-chave normal não.
Também tentei remover ProxyPass
completamente 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.