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

4

Eu preciso configurar o proxy reverso que colocará o valor do cabeçalho da solicitação original como um parâmetro para o URL de destino. A razão para isso é puramente específica da aplicação e, infelizmente, não posso alterar este aplicativo.  Por exemplo, eu preciso do seguinte link com o cabeçalho http myparam = abcd Eu preciso ser proxied para link

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

    
por kulatamicuda 15.04.2015 / 23:19

2 respostas

2

Testado no Apache 2.4:

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

Exemplo reescreve (se o cabeçalho myparam tiver valor myvalue ):

  • a.com se torna http://b.com?val=myvalue
  • a.com/path/here se torna http://b.com/path/here?val=myvalue
  • a.com/path?a=b&c=d se torna http://b.com/path?a=b&c=d&val=myvalue

Se o cabeçalho myparam não existir, a.com/x redirecionará para http://b.com/x?val= . Se você quiser redirecionar para http://b.com/x , poderá usar a versão mais longa a seguir:

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

Links relacionados:

por 24.04.2015 / 17:21
1

Para o IIS, você pode usar a extensão de regravação de URL :

IIS URL Rewrite 2.0 enables Web administrators to create powerful rules to implement URLs that are easier for users to remember and easier for search engines to find. By using rule templates, rewrite maps, .NET providers, and other functionality integrated into IIS Manager, Web administrators can easily set up rules to define URL rewriting behavior based on HTTP headers, HTTP response or request headers, IIS server variables, and even complex programmatic rules. In addition, Web administrators can perform redirects, send custom responses, or stop HTTP requests based on the logic expressed in the rewrite rules.

Works With: IIS 7, IIS 7.5, IIS 8

Um passo a passo pode ser encontrado em: Criando regras de reconfiguração para o módulo de regravação de URL .

    
por 25.04.2015 / 12:38