nginx -重定向/重写URL

iyr7buue  于 2023-05-22  发布在  Nginx
关注(0)|答案(1)|浏览(148)

这是我的工作项目的设置:
我们在同一台服务器上有主应用程序的后端和单独的服务。https://main.app/api基本URL通向主后端,而https://main.app/api/service通向单独的服务。这是通过nginx完成的,它在其sites-available目录中有一个“default”文件,一个“dev”文件和一些其他文件(前端相关)。建立dev文件以将/API/服务请求URL重定向到单独服务的后端,同时将所有其它/API链接重定向到主应用后端。这都是以前由别人设置的,我与nginx的联系几乎是“我知道它存在”。
我需要的是将url https://main.app/.abcd/efgh/ijkl(ijkl是动态的)重定向到https://main.app/api/service/efgh/ijkl,所以基本上是采用“.abcd”并将其替换为“API/service”,同时也遵守以前的重定向规则,将所有/api/service链接重定向到单独的服务后端。
有帮助吗?

0s7z1bwu

0s7z1bwu1#

想明白了,首先重写URL,然后重定向:

location /.abcd {
        rewrite ^/.abcd/(.+)$ /api/service/$1 break;

        // this is a previously set up redirect
        proxy_pass http://service;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

相关问题