Tengo una reescritura en mi archivo ngix conf que funciona correctamente, excepto que parece incluir el bloque de ubicación como parte de la variable $ uri. Solo quiero la ruta después del bloque de ubicación. Mi código de configuración actual es:
location /cargo {
try_files $uri $uri/ /cargo/index.php?_REWRITE_COMMAND=$uri&args;
}
El uso de una URL de ejemplo de http://localhost/cargo/testpage
la redirección funciona, sin embargo, el valor del parámetro "_REWRITE_COMMAND" recibido por mi archivo php es "/ cargo / testpage". Necesito quitar el bloque de ubicación y solo tener "página de prueba" como $ uri
Estoy bastante seguro de que hay una sintaxis de expresiones regulares para dividir $ uri y asignarla a una nueva variable usando $ 1 $ 2, etc., pero no puedo encontrar ningún ejemplo para hacer solo una asignación de variable usando una expresión regular que no sea parte de una reescritura declaración. He estado buscando e intentando durante horas y parece que no puedo superar este último paso.
También sé que podría eliminar esto en el código de la aplicación, pero la razón por la que quiero intentar solucionarlo en nginx conf es por razones de compatibilidad, ya que también se ejecuta en Apache. También debo decir que he descubierto una manera muy hacky para hacerlo, pero se trata de un "if" para comprobar si hay existencia de archivos y la documentación específicamente dice no hacerlo de esa manera.
Encontré otra cosa que funcionó para mí (como estoy usando gunicorn, no puedo elegir qué pasar)
Deberías poder salirte con la tuya
fuente
Para aquellos que podrían tener dificultades para agregarlo para micro servicio o API con Node JS, utilicé lo siguiente para eliminar
api
de la url en mi servidor:fuente