ProxyPass no funciona junto con ProxyPassMatch

ProxyPass no funciona junto con ProxyPassMatch

Entonces, en este momento tengo un host virtual configurado en mi instancia de Oracle HTTP Server con un ProxyPass como tal:

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

Cuando intento acceder, https://mywebsite.com/test/home/<url_from_other_server>la solicitud parece funcionar como se esperaba. Sin embargo, cuando intento acceder, https://mywebsite.com/test/home/no me envía un proxy, https://example.com/sino que me devuelve un 404.

El ProxyPassMatchcomodín parece funcionar para todos los suburls a los que intento acceder, pero la ProxyPasspalabra clave normal no.

También intenté eliminarlo ProxyPasspor completo y aparece el mismo error 404 cuando intento acceder a /test/home/

¿Alguien tiene alguna idea de qué podría estar causando este extraño comportamiento?

Gracias.

Respuesta1

Tu expresión regular no es del todo correcta. *significa "cero o más apariciones", por lo que https://mywebsite.com/test/home/coincide con él. Cambie (.*)a (.+), que significa "una o más apariciones". Entonces su ProxyPassMatch ya no debería coincidir con esa URL.

O simplemente elimine la línea ProxyPassMatch por completo, es bastante inútil, las URL son manejadas así por la línea ProxyPass automáticamente.

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

Respuesta2

La cuestión ha sido abordada. La configuración correcta para este problema en particular es la siguiente:

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

Quitar la barra y agregar el comodín nos ha permitido enviar por proxy todo lo siguiente /test/home.

Gracias por su aportación a todos ustedes.

información relacionada