我的主人(dev.foo.com
)有一张如下地图。大约1000个条目。
rewrite ^/2f7f29e4-14be-564a-85e0-5bb29b9fc33f/(.*)$ "/gajus kuizinas/2012 04 03 gappery/$1" last;
rewrite ^/cb6e7269-75c0-5926-b5d5-4e625e1a320d/(.*)$ "/gajus kuizinas/2012 04 07 gappery/$1" last;
rewrite ^/8b96e14f-09cd-55a5-9de3-19775b5ee2bb/(.*)$ "/gajus kuizinas/2012 05 17 followem/$1" last;
有没有办法将主机仅限制为以其中一个给定UUID开头的URI?换句话说,使任何其他路径无法访问,例如dev.foo.com/public/[..]
。
答案 0 :(得分:1)
location / {
return 403;
}
location ~ ^/\w{8}-(?:\w{4}-){3}\w{12}/ {
...
}
答案 1 :(得分:0)
在服务器或位置指令中添加:
if ($request_uri !~ "^/\w{8}-(?:\w{4}-){3}\w{12}/.*") {
return 503;
}
所以,正如医生说的那样,
$ REQUEST_URI 此变量等于从客户端(包括args)收到的原始请求URI。它无法修改。查看$ uri以获取重写/更改后的URI。不包括主机名。示例:“/ foo / bar.php?arg = baz”
如果$ request_uri与您的uuid正则表达式不匹配,则nginx返回403错误(拒绝访问)。