我有一个像这样定义的 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/
。