如何进行nginx url重写?

时间:2018-05-10 10:31:34

标签: nginx

我是ngnix的新手,也许我的问题很简单,但我无法找到对角线问题:

我们将我们的网络应用程序从0.6.4迁移到0.6.5。可以肯定的是,我们的用户不会将旧文件保留在浏览器缓存中,我们会在我们的网址前加上版本号,以强制刷新:例如https://qa.share.place/ v0.6.5 / place / (:placeId)

所以我需要那些使用旧网址格式为网址添加书签的人 https://qa.share.place/ v0.6.4 / place /(:placeId)重定向到新网址。

我尝试用这种方式重写网址:

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,而且我不知道如何记录重定向(重写)网址的位置,以了解墙后发生的事情。

重写后是否仍然解释了路由位置/v0.6.5 {} ?或重写是否会在发生后跳过任何处理?

请帮助

0 个答案:

没有答案