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 ProxyPassMatch
comodín parece funcionar para todos los suburls a los que intento acceder, pero la ProxyPass
palabra clave normal no.
También intenté eliminarlo ProxyPass
por 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.