Proxy inverso para poner el valor del encabezado como parámetro a url


4

Necesito configurar un proxy inverso que pondrá el valor del encabezado de la solicitud original como un parámetro a la URL de destino. La razón de esto es la aplicación purelly específica y desafortunadamente no puedo cambiar esta aplicación.  Por ejemplo necesito el siguiente https://a.com con el encabezado http myparam = abcd necesito ser proxy a http://b.com/?val=abcd

¿Es posible configurar IIS o Apache para realizar dicha tarea? Si es así, ¿puedes explicar cómo?


Veo que no aceptaste mi respuesta y no aceptaste la otra respuesta. ¿Sigues buscando respuestas / más detalles? Si no, debes aceptar una de las respuestas.
user49740

1
@ user49740 No, solo se me olvidó marcar :)
kulatamicuda

Respuestas:


2

Probado en Apache 2.4:

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

El ejemplo vuelve a escribir (si el encabezado myparam tiene valor myvalue ):

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

Si el myparam el encabezado no existe, a.com/x se redireccionará a http://b.com/x?val=. Si quieres redirigir a http://b.com/x, puedes usar la siguiente versión más larga de la anterior:

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

Enlaces relacionados:


1

Para IIS podrías usar el Extensión de reescritura de URL :

IIS URL Rewrite 2.0 permite a los administradores web crear poderosos   reglas para implementar URL que son más fáciles de recordar y para los usuarios   Más fácil para los motores de búsqueda para encontrar. Usando plantillas de reglas, reescriba   Mapas, proveedores de .NET y otras funcionalidades integradas en IIS   Administrador, los administradores web pueden configurar fácilmente reglas para definir URL   Comportamiento de reescritura basado en encabezados HTTP, respuesta o solicitud HTTP   encabezados, variables del servidor IIS e incluso reglas programáticas complejas. En   Además, los administradores web pueden realizar redirecciones, enviar personalizadas.   respuestas, o detenga las solicitudes HTTP basadas en la lógica expresada en el   reescribir las reglas.

Funciona con: IIS 7, IIS 7.5, IIS 8

Un tutorial se puede encontrar en: Creación de reglas de reescritura para el módulo de reescritura de URL .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.