如何在nginx中转换(重写)部分URL

问题描述 投票:0回答:3

我正在尝试将流量重定向到我们的新服务器,但旧服务器(Mac OS)使用不区分大小写的文件名,而新(嵌入式)服务器使用Linux(区分大小写)。 我的问题是重定向流量:

http://server.com/NEW/variable_url

http://server.com/new/variable_url

(注意下面的“新”)。

我希望能够在不使用 perl 或 lua 或其他模块的情况下为 nginx 执行此操作,因为该服务器在嵌入式环境中运行。

到目前为止我尝试过:

 location ~* ^/new/ {
       access_log /var/log/nginx/new.log combined;
        rewrite ^/new/(.*)$ $1 permanent;
     }

没有成功。

regex nginx url-rewriting location
3个回答
2
投票

我自己解决了。我缺少指向 Web 服务器根目录的 root 指令。因此,对于任何感兴趣的人来说,解决方案是:

location ~* ^/NEW/ {
        root /etc/nginx/html/;
        rewrite /NEW/(.*)$ /new/$1 permanent;
     }

1
投票

也许是这样的?

location /NEW {
   rewrite ^/NEW/(.*)$ /new;
}

0
投票

如果您想从特定链接重定向流量

/NEW/exampe1
,您可以尝试

location =/NEW/example1
{
rewrite ^ /new/example1 last;
}
© www.soinside.com 2019 - 2024. All rights reserved.