Eu consegui usar o apache para remover um url param e colocá-lo em um cabeçalho para ser passado para outro servidor. Veja esta questão para referência.
Agora, gostaria de adicioná-lo obtendo o valor do cabeçalho de um cookie, se ele não estiver presente no URL. Aqui está o que eu tentei:
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)memberUuid=(.*)$
RewriteRule ^/(.*)$ http://127.0.0.1:9000/$1 [CO=memberUuid:%2:localhost,E=memberUuid:%2,P]
RewriteCond %{HTTP_COOKIE} memberUuid=(.*)
RewriteRule ^/(.*)$ http://127.0.0.1:9000/$1 [E=memberUuid:%2,P]
ProxyPreserveHost On
ProxyPass /excluded !
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
Header add iv-user "%{memberUuid}e"
RequestHeader set iv-user "%{memberUuid}e"
</VirtualHost>
Isso ainda funciona se o memberUuid
estiver na URL, mas não funcionar com o cookie. Eu tenho o cookie memberUuid
no meu navegador, mas se eu deixar o parâmetro de URL desativado, o cabeçalho iv-user
terá um valor vazio.
Eu também tentei ([^;]+)
para minha expressão regular, como recomendado em este post .
Tenho certeza de que meu erro tem muito a ver comigo ser um completo idiota do apache. Eu sou um noob completo e não tenho vergonha de dizer isso. Me ilumine por favor!
Editar
Atualizei meu host virtual para que o apache configure o cookie memberUuid
no navegador do usuário se ele vier da string de consulta. Dessa forma, posso ter certeza de que o cookie está presente na próxima solicitação (eu estava fazendo com que o servidor de destino fizesse isso).