Regla de reescritura de Nginx para eliminar el nodo de ruta

20

Digamos que un usuario intenta acceder a una imagen determinada en mi sitio web utilizando la siguiente URL: http://www.mywebsite.com/blog/image1.jpg?someParam=100

Necesito una regla de reescritura para esto, eliminando el nodo 'blog' de la ruta:

http://www.mywebsite.com/image1.jpg?someParam=100

marcosbeirigo
fuente

Respuestas:

27

Prueba este:

location /blog {
 rewrite ^/blog(/.*)$ $1 last;
}

Si necesita esto para más de un sitio, no puede simplemente ponerlo más alto en la jerarquía porque la cláusula de "ubicación" no puede especificarse globalmente, solo para un sitio específico. Si necesita agregar esta cláusula para dos sitios o más, puede colocar otro archivo de configuración y luego simplemente "incluirlo" en cada sitio que necesite esta redirección.

kworr
fuente
Esto funciona en el mismo servidor. ¿Cómo hacer que funcione para los diferentes dominios?
Autodidacta
1
Simplemente incluya el nuevo dominio como parte de la reescritura: rewrite ^/blog(/.*)$ https://blog.example.com$1 permanent;
Christophe