Apache ProxyPassReverse com parâmetros da solicitação

1

Eu tenho uma situação onde eu quero redirecionar tudo o que começa com / app para um servidor interno. Basicamente, a ideia é que o Apache funcionará como um proxy reverso, fazendo a seguinte conversão:

http://external/app -> http://myserver:1082/myapp

Consegui fazer isso usando o Rewrite, da seguinte maneira:

  RewriteCond %{REQUEST_URI} ^/app
  RewriteRule ^/app(.*)$ http://myserver:1082/myapp$1 [L,P]

  ProxyPassReverse /app http://myserver:1082/myapp

Funciona bem. A questão é que agora vou ter um prefixo de idioma na URL, mas não no aplicativo. Então eu preciso do seguinte redirecionamento:

http://external/app -> http://myserver:1082/myapp
http://external/en/app -> http://myserver:1082/myapp
http://external/pt/app -> http://myserver:1082/myapp

Enquanto isso pode ser feito com a reescrita, eu tenho um problema com o proxyPassReverse. Porque basicamente eu preciso fazer um ProxyPassRever dinâmico que, dependendo da solicitação real do URL pelo usuário, mude o Local

ProxyPassReverse /en/app http://myserver:1082/myapp
ProxyPassReverse /pt/app http://myserver:1082/myapp
ProxyPassReverse /app http://myserver:1082/myapp

Seria algo como

ProxyPassReverse ${preffix}/app http://myserver:1082/myapp

É possível fazer isso?

    
por Jose L Martinez-Avial 05.07.2012 / 18:45

1 resposta

1

De ProxyPathReverse :

When used inside a section, the first argument is omitted and the local directory is obtained from the .

Em Localização :

The URL may use wildcards. In a wild-card string, ? matches any single character, and * matches any sequences of characters. Extended regular expressions can also be used, with the addition of the ~ character.

Então você deve poder usar:

<Location /[a-z]+/app>
    ProxyPathReverse http://myserver:1082/myapp
</Location>
    
por 05.07.2012 / 20:50