nginx 重定向 / 到 /v2/

nginx 重定向 / 到 /v2/

我有一个像这样定义的 nginx 位置:

location / {
        alias /usr/share/nginx/myapp/dist/;
        gzip_static on;

        # Media: images, icons and fonts
        location ~* \.(?:jpg|jpeg|png|ico|otf)$ {
            expires 2M;
            access_log off;
            add_header Cache-Control "public";
        }

        # CSS, HTML and Javascript
        location ~* \.(?:css|js|html)$ {
            expires 4h;
            access_log off;
            add_header Cache-Control "public";
        }
    }

但出于某种原因,很多用户没有收到我上次的 index.html 更新。由于这很关键,而且很多用户抱怨,我想将每个请求从 / (/index.html、/#/myTeam) 重定向到 /v2/ (/v2/index.html、/v2/#/myTeam)。因此我确信用户缓存不是问题。

我创建了一个名为 /v2/ 的新位置并将所有内容移到那里,然后将 / 更改为:

 # Serve locations
 location / {
     return 301 /v2/;
 }

但那没用。还尝试了几次重写,但都没有成功。我可以重定向 / 吗?

答案1

您正在将每个请求重定向/blah/blah/whatever到简单的内容,/v2/但这并不是您想要的。

location / {
    return 301 /v2$request_uri;
}

将保留原始请求的 URI,并在其前面加上/v2/

相关内容