在 Nginx 中修剪路径并重定向

在 Nginx 中修剪路径并重定向

我有一个 Wordpress 服务器,www.mydomain.com/A/B Nginx 配置如下:

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

一切正常。

我现在想要做的是将旧路径重定向到新路径。

基本上我想要www.mydomain.com/A/B/C/XXX/YYY/ZZZ--> www.mydomain.com/A/B/XXX/YYY/ZZZ。删除/C

我相信我可以用以下方法做到:

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

但它没有起作用。然后我尝试

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

我想我可能需要另一种方法,因为我需要/XXX/YYY之后的路径/C

任何帮助都值得感激。谢谢。

答案1

您需要重写 URL 以删除C路径元素。

例如:

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

您可以将其放置在server块中,或者location ^~ /A/B/C/块中。

相关内容