我有一个 nginx 服务,它大量使用地图来根据每个用户生成不同的重定向。我在 proxy_pass 调用中很好地使用了这些变量。
我现在想根据登录者从目录提供静态文件。
我正在尝试使用这样的东西:
location ~ /images/(.*\.(jpg|jpeg))$ {
alias /www/foo/$map_user/$1;
}
它无法工作。
如果我为测试用户使用静态版本:
location ~ /images/(.*\.(jpg|jpeg))$ {
alias /www/foo/test/$1;
}
它有效。
任何人都知道如何让它按照我想要的方式工作,这样我就可以在网站上使用相同的路径,但让它在登录用户的目录中查找?我基本上不希望用户能够尝试猜测其他用户的目录来查看他们的图像。
我认为您的解决方案不起作用的原因与here的回答有些相似 - 当您评估
$1
变量时,$map_user
变量被覆盖。尝试使用命名捕获,例如:
location ~ /images/(?<image>.*\.jpe?g)$ {
alias /www/foo/$map_user/$image;
}