RewriteRule incluyendo solo la última parte de REQUEST_URI.
ProxyPreserveHost On
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule .* "ws://192.168.0.101:1234%{REQUEST_URI}" [P]
Cuando el cliente se conecta a
ws://www.example.com/foo/whatever_arbitrary_random
esto funciona perfectamente, pero el resultado es
ws://192.168.0.101:1234/foo/whatever_arbitrary_random
¿Cómo puedo deshacerme de la /foo/
para que el resultado sea
ws://192.168.0.101:1234/whatever_arbitrary_random
El cliente todavía debe conectarse a /foo/
para activar esto
EDIT: Encontré cómo hacerlo, reemplazar la última línea con
RewriteRule ([^/]+)/?$ ws://192.168.0.101:1234/$1 [P,L]
Pero por favor lea la primera respuesta sugiriendo no hacer esto en una Location
davy.ai
Para lograr el resultado deseado de eliminar “/foo/” de la URL final, se puede realizar la siguiente modificación en la última RewriteRule:
Esto coincidirá con cualquier URL que comience con “/foo/” y capturará todo después de ella usando el patrón del grupo “(.*)”. Luego, el grupo capturado se agregará a la URL de destino después de “ws://192.168.0.101:1234/”. Esto eliminará efectivamente “/foo/” de la URL final.
Sin embargo, vale la pena mencionar que no se deben hacer estas modificaciones dentro de un bloque LocationMatch, ya que puede afectar otras reglas o directivas dentro de ese bloque. Se recomienda utilizar un bloque VirtualHost o Directory separado que pueda dirigirse específicamente a las URL que necesitan ser reescritas.