我想设置 nginx 位置匹配,但只针对特定的源地址。不幸的是,如果我已经匹配了一个位置,但不是我无法进入下一个位置的条件。有什么办法可以很好的解决?
server {
...
location / {
index app.php;
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last;
}
...
location ~ ^/admin {
if ($source_trusted = "UNKNOWN") {
return 403;
}
}
...
location ~ ^/... {
fcgi_pass ...
...
}
}
使用此配置/admin
从设置$source_trusted = OK
(通过地理模块)的源中获取结果404
,而不是页面加载。
请记住,nginx 通常只评估一个
location
,除非特别指示使用另一个,例如在调用try_files
(您这样做)中的命名位置时。因此,当您点击该
^/admin
位置时,您只需要做任何适当的事情。在这种情况下,它很可能与try_files
您在location /
.