
Necesito configurar un proxy inverso que colocará el valor del encabezado de la solicitud original como parámetro en la URL de destino. El motivo de esto es puramente específico de la aplicación y desafortunadamente no puedo cambiar esta aplicación. Por ejemplo necesito lo siguientehttps://a.comcon el encabezado http myparam=abcd necesito que me envíen un proxyhttp://b.com/?val=abcd
¿Es posible configurar IIS o Apache para realizar dicha tarea? Si es así, ¿puedes explicar cómo?
Respuesta1
Probado en Apache 2.4:
# (In a VirtualHost for a.com)
RewriteEngine on
RewriteRule ^(.*)$ http://b.com$1?val=%{HTTP:myparam} [QSA,P]
Reescrituras de ejemplo (si el encabezado myparam
tiene valor myvalue
):
a.com
se conviertehttp://b.com?val=myvalue
a.com/path/here
se conviertehttp://b.com/path/here?val=myvalue
a.com/path?a=b&c=d
se conviertehttp://b.com/path?a=b&c=d&val=myvalue
Si el myparam
encabezado no existe, a.com/x
se redireccionará a http://b.com/x?val=
. Si desea redirigir a http://b.com/x
, puede utilizar la siguiente versión más larga de lo 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:
Respuesta2
Para IIS puedes usar elExtensión de reescritura de URL:
IIS URL Rewrite 2.0 permite a los administradores web crear reglas poderosas para implementar URL que sean más fáciles de recordar para los usuarios y más fáciles de encontrar para los motores de búsqueda. Al utilizar plantillas de reglas, mapas de reescritura, proveedores .NET y otras funciones integradas en el Administrador de IIS, los administradores web pueden configurar fácilmente reglas para definir el comportamiento de reescritura de URL basándose en encabezados HTTP, encabezados de solicitud o respuesta HTTP, variables del servidor IIS e incluso archivos complejos. reglas programáticas. Además, los administradores web pueden realizar redirecciones, enviar respuestas personalizadas o detener solicitudes HTTP según la lógica expresada en las reglas de reescritura.
Funciona con: IIS 7, IIS 7.5, IIS 8
Puede encontrar un tutorial en: Creación de reglas de reescritura para el módulo de reescritura de URL.