Proxy reverso para colocar o valor do cabeçalho como parâmetro para url

Proxy reverso para colocar o valor do cabeçalho como parâmetro para url

Preciso configurar o proxy reverso que colocará o valor do cabeçalho da solicitação original como parâmetro para o URL de destino. A razão para isso é puramente específica do aplicativo e, infelizmente, não posso alterar esse aplicativo. Por exemplo eu preciso do seguintehttps://a.comcom cabeçalho http myparam=abcd eu preciso ter proxy parahttp://b.com/?val=abcd

É possível configurar o IIS ou o Apache para executar tal tarefa? Se sim, você pode explicar como?

Responder1

Testado no Apache 2.4:

# (In a VirtualHost for a.com)
RewriteEngine on
RewriteRule ^(.*)$ http://b.com$1?val=%{HTTP:myparam} [QSA,P]

Exemplo de reescrita (se o cabeçalho myparamtiver valor myvalue):

  • a.comtorna-sehttp://b.com?val=myvalue
  • a.com/path/heretorna-sehttp://b.com/path/here?val=myvalue
  • a.com/path?a=b&c=dtorna-sehttp://b.com/path?a=b&c=d&val=myvalue

Se o myparamcabeçalho não existir, a.com/xserá redirecionado para http://b.com/x?val=. Se quiser redirecionar para http://b.com/x, você pode usar a seguinte versão mais longa do item acima:

RewriteEngine on
RewriteCond %{HTTP:myparam} .
RewriteRule ^(.*)$ http://example.com$1?val=%{HTTP:myparam} [QSA,L,P]
RewriteRule ^(.*)$ http://example.com$1 [P]

Links Relacionados:

Responder2

Para IIS você poderia usar oExtensão de reescrita de URL:

O IIS URL Rewrite 2.0 permite que os administradores da Web criem regras poderosas para implementar URLs que são mais fáceis de serem lembradas pelos usuários e mais fáceis de serem encontradas pelos mecanismos de pesquisa. Usando modelos de regras, mapas de reescrita, provedores .NET e outras funcionalidades integradas ao Gerenciador do IIS, os administradores da Web podem configurar facilmente regras para definir o comportamento de reescrita de URL com base em cabeçalhos HTTP, cabeçalhos de resposta ou solicitação HTTP, variáveis ​​de servidor IIS e até mesmo complexos regras programáticas. Além disso, os administradores da Web podem realizar redirecionamentos, enviar respostas personalizadas ou interromper solicitações HTTP com base na lógica expressa nas regras de reescrita.

Funciona com: IIS 7, IIS 7.5, IIS 8

Um passo a passo pode ser encontrado em: Criando regras de reescrita para o módulo de reescrita de URL.

informação relacionada