Eu pesquisei alto e baixo por uma solução para isso e espero que seja apenas eu. O que estou tentando fazer é redirecionar todo o tráfego de um URL que hospedamos para outro servidor gerenciado por outro provedor que compramos, para que possamos personalizar o URL raiz.
Estou usando o httpd 2.2.3 (Apache). Isso é configurado em uma seção VirtualHost, também é SSL (não acho que isso deva importar).
Tudo funciona bem, exceto a exclusão.
O que eu tenho (simplificado) é:
ProxyPreserveHost On
<VirtualHost 1.2.3.4:443> SSLProxyEngine On
ProxyPassMatch ^/$ !
ProxyPassMatch ^/(.*)$ https://proxy.example.com/$1
ProxyPassReverse / https://proxy.example.com/
SSLEngine on
...
</VirtualHost>
No entanto, sempre vai para o site remoto. Eu tentei várias combinações como:
ProxyPassMatch /$ !
ProxyPassMatch ^/(.*)$ https://proxy.example.com/$1
ProxyPassMatch com/ !
ProxyPassMatch ^/(.*)$ https://proxy.example.com/$1
Eu também tentei ir para o outro lado (para combinar qualquer coisa com algo depois do /, ou seja:
ProxyPassMatch ^/(..+)$ https://proxy.example.com/$1
ProxyPassMatch / !
ProxyPassMatch ^/(..*)$ https://proxy.example.com/$1
ProxyPassMatch / !
Agora, a documentação diz que ele corresponde ao URL, mas não encontrei nenhuma evidência de que isso é o que realmente faz (isto é, a segunda variante acima com com / ).
Eu também tentei um monte de outras combinações que combinam tudo ou não combinam com nada.
Meu pensamento é que não estou entendendo o URL que está sendo fornecido à expressão regular, mas não tenho certeza de como analisá-lo. Eu aumentei o nível de depuração no Apache para debugar , e também não deu nada útil.
Felicidades.