Nginx 中使用子目录 URL 进行重定向

Nginx 中使用子目录 URL 进行重定向

当我使用浏览器时,我会调用http://myhost/tiles/yellow/1/2/3.png,我期望从http://myhost/cache/yellow.png 我的配置如下

    location /cache/ {
      alias /my/path/cache/;
    }

    location /tiles/ {
      try_files $uri $uri/ @rulestiles;
    }
    location @rulestiles {
      rewrite "^/tiles/([a-zA-Z1-9]*)/[0-9]{2}/[0-9]{6}/[0-9]{6}\.png$" /cache/$1\.png permanent;
    }

我错过了什么?是不是因为我不需要所有参数,所以没有到处使用捕获?

我也不想使用符号链接,因为只有几百个真实文件才需要数亿个符号链接......

感谢您的指导/帮助

答案1

感谢对 Alexey Ten我的问题的评论,我能够纠正我的各种错误。

首先,我的正则表达式是错误的,所以我在测试时没有捕获参数

然后,我也改为rewrite保持proxy_pass我的网址不变

location /cache/ {
    alias /my/path/cache/;
}

location ~ "/tiles/(?<section>[a-zA-Z1-9]*)/[0-9]{1,2}/[0-9]{1,6}/[0-9]{1,6}.png$" {
    proxy_pass http://my.tested.ip.code/cache/$section.png;
    proxy_set_header Host $host;
}

my.tested.ip.code服务器 IP 在哪里。

相关内容