
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 myparam
tiver valor myvalue
):
a.com
torna-sehttp://b.com?val=myvalue
a.com/path/here
torna-sehttp://b.com/path/here?val=myvalue
a.com/path?a=b&c=d
torna-sehttp://b.com/path?a=b&c=d&val=myvalue
Se o myparam
cabeçalho não existir, a.com/x
será 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.