nginx通过ip限制目录访问

nginx通过ip限制目录访问

我正在使用 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;
  }
}

相关内容