Recortar el camino y redirigir en Nginx

Recortar el camino y redirigir en Nginx

Tengo un servidor de Wordpress en www.mydomain.com/A/B La configuración de Nginx es la siguiente:

server {
    listen 80 default;

    root /var/www/html;

  location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }


    location /A/B {
        try_files $uri $uri/ /A/B/index.php?$args;
    }
...
}

Esto está funcionando bien.

Lo que quiero hacer ahora es redirigir una ruta heredada a la nueva ruta.

Básicamente quiero www.mydomain.com/A/B/C/XXX/YYY/ZZZ--> www.mydomain.com/A/B/XXX/YYY/ZZZ. Eliminando /C.

Creo que podría hacerlo con:

location /A/B/C {
            try_files $uri $uri/ /A/B/index.php?$args;
}

Pero no funcionó. Entonces lo intenté

location /A/B/C {
    proxy_pass http://localhost/A/B;  # note the trailing slash here, it matters!
}

Creo que tal vez necesite otra forma ya que necesito el /XXX/YYYcamino después del /C.

Cualquier ayuda se agradece. Gracias.

Respuesta1

Deberá reescribir la URL para eliminar el Celemento de ruta.

Por ejemplo:

rewrite ^(/A/B/)C/(.*)$ $1$2 permanent;

Puedes colocar esto en el serverbloque o en un location ^~ /A/B/C/bloque.

información relacionada