![nginx通过ip限制目录访问](https://linux22.com/image/552270/nginx%E9%80%9A%E8%BF%87ip%E9%99%90%E5%88%B6%E7%9B%AE%E5%BD%95%E8%AE%BF%E9%97%AE.png)
我正在使用 nginx,想限制除我之外的所有人访问目录。我想访问 /restricted 中的 php 脚本。到目前为止,我已经尝试了一些方法。如果我没记错的话,这可以阻止除允许的 ip 之外的所有人访问,但现在所有脚本都被推送到下载而不是处理。
location ~ /restricted { allow 1.2.3.4; deny all; }
答案1
您需要第二个(我更喜欢嵌套的)php 块,因为您希望以不同的方式处理这些 php 文件。此外,假设 /restricted 应该是 uri 前缀,而不仅仅是出现在 uri 中任何地方的东西,您需要一种不同类型的位置:
# This handles everything that starts with /restricted,
# and no regex locations will override it
location ^~ /restricted {
allow 1.2.3.4;
deny all;
# This will inherit the allow/deny from the outer location
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass backend;
}
}