Apache VirtualHost - por usuario ProxyPass

Apache VirtualHost - por usuario ProxyPass

Estoy intentando configurar Apache para redirigir a los usuarios a diferentes rutas según sus credenciales de autenticación (usandohtpasswd). He logrado configurarProxyPass, que permite la redirección de la solicitud a una ruta personalizada; sin embargo, ahora todos los usuarios son redirigidos a la misma ruta. Esto sucede debido al uso de la misma <Location />directiva para todos los usuarios. Cuando intento con <Location /user123>, <Location /user456>,... funciona según lo previsto, pero me gustaría que Apache reenvíe la /ubicación a las rutas apropiadas según las credenciales proporcionadas. es posible?

Respuesta1

Mirando apache con mod_rewrite. Creo que podrías hacer algo como lo siguiente. La variable remote_user está disponible para Apache en la configuración. Creo que puedes hacer algo como lo siguiente.

RewriteCond "%{REMOTE_USER}"  "!^$"
RewriteRule "^/(.*)"  "/$1/%{REMOTE_USER}" [R]

La condición dice que si el usuario remoto existe con un valor que no es una cadena vacía, entonces reescriba las URL con una URL remota. También puedes hacer una redirección.

RedirectMatch "^/(.*)" "/$1/%{REMOTE_USER}"

Aquí están mis referencias. Esto muestra las variables disponibles para mod_rewrite https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html

Esto muestra ejemplos de mod_rewrite en acción. https://httpd.apache.org/docs/2.4/rewrite/remapping.html

Respuesta2

Si analizamos la pregunta más de cerca, ya que está utilizando la instancia de Apache para autenticarse mediante el archivo htpasswd. Creo que puedes hacer referencia a la variable REMOTE_USER.

Creo que puedes usar algo como lo siguiente en tu configuración de Apache.

ProxyPass / http://localhost:8080/%{REMOTE_USER}/
ProxyPassReverse / http://localhost:8080/%{REMOTE_USER}/

información relacionada