如何重写nginx url?
我是ngnix的新手,可能我的问题很小,但我无法找到任何方法来确定问题在哪里: 我们将web应用程序从版本0.6.4迁移到了版本0.6.5。可以肯定的是,我们的用户不会在浏览器缓存中保留旧文件,我们会在url前面加上版本号以强制刷新:例如v0.6.5/place/(:placeId) 所以我需要的人谁书签的网址与旧的网址格式 v0.6.4/place/(:placeId)将被重定向到新url 我尝试以这种方式重写url:如何重写nginx url?,nginx,Nginx,我是ngnix的新手,可能我的问题很小,但我无法找到任何方法来确定问题在哪里: 我们将web应用程序从版本0.6.4迁移到了版本0.6.5。可以肯定的是,我们的用户不会在浏览器缓存中保留旧文件,我们会在url前面加上版本号以强制刷新:例如v0.6.5/place/(:placeId) 所以我需要的人谁书签的网址与旧的网址格式 v0.6.4/place/(:placeId)将被重定向到新url 我尝试以这种方式重写url: server { server_name qa.share.pla
server {
server_name qa.share.place;
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server ipv6only=on;
ssl_certificate /etc/letsencrypt/live/qa.share.place/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/qa.share.place/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/qa.share.place/fullchain.pem;
include /etc/nginx/snippets/ssl.conf;
#https://forum.nginx.org/read.php?2,267685,267686
#keepalive_timeout 70;
root /home/ubuntu/share_place/bin/static;
index index.html index.htm index.nginx-debian.html;
#return 302 https://www.share.place/upgrade;
gzip on;
gzip_min_length 1000;
gunzip on;
client_body_in_file_only clean;
client_body_buffer_size 32K;
sendfile off;
send_timeout 300s;
client_max_body_size 1000M;
#================ here is my issue
rewrite ^(\/v0\.6\.4\/)(.*) /v0.6.5/$2 last;
location /v0.6.5 {
proxy_pass http://localhost:3000/ ;
}
}
问题是,我有一个404,我不知道如何记录url重定向(重写)的位置,以了解墙后发生了什么
重写后是否仍对路由位置/v0.6.5{}进行解释?或者重写后是否会跳过任何处理
请提供任何帮助您的
/0.6.5/$2
缺少v
。这是问题的错别字还是问题的原因?嗨,Richard,很抱歉耽搁了,我得找时间测试一下。你是对的问题中有一个输入错误,但我现在仔细检查了配置。它不会重定向(在v处于适当位置时:rewrite^(\/v0\.6\.4\/)(.*)/v0.6.5/$2 last;)。我更正了这个问题,这样就不会再有输入错误了。您可能会遇到浏览器缓存问题,因为您没有将用户重定向到新的URI。你可能会发现,rewrite…permanent
比rewrite…last
更有效。事实上,我遇到了人类大脑缺陷:):问题是我尝试了一个格式为…/0.6.4的url,但有时忘了在它后面加一个/。非常感谢RichardI上次将设置更改为重写^(\/v0\.6\.4)(.*)/v0.6.5$2;包含原始无参数URL的步骤