Cortando o caminho e redirecionando no Nginx

Cortando o caminho e redirecionando no Nginx

Eu tenho um servidor Wordpress em www.mydomain.com/A/B A configuração do Nginx é como:

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;
    }
...
}

Isso está funcionando bem.

O que quero fazer agora é redirecionar um caminho legado para o novo caminho.

Basicamente eu quero www.mydomain.com/A/B/C/XXX/YYY/ZZZ--> www.mydomain.com/A/B/XXX/YYY/ZZZ. Removendo /C.

Acredito que poderia fazer isso com:

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

Mas não funcionou. Então eu tentei

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

Acho que talvez precise de outra maneira, já que preciso do /XXX/YYYcaminho após o arquivo /C.

Qualquer ajuda será apreciada. Obrigado.

Responder1

Você precisará reescrever o URL para remover o Celemento path.

Por exemplo:

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

Você pode colocar isso no serverbloco ou em um location ^~ /A/B/C/bloco.

informação relacionada