1

我已经把头发拔了好几个小时了。

我的 [statamic CMS] 站点在登台服务器上的子目录中运行。

  • domain.com/site1/
  • domain.com/site2/
  • domain.com/site3/

我正在使用 Statamic 提供的 NGINX conf:

https://gist.github.com/jackmcdade/3866603

我已经修改如下:

https://gist.github.com/LkeMitchll/b6d8aea6c0845e3a341f

一切正常,但...

...当我导航到domain.com/site1/_config/users/admin.yaml时,我可以不受限制地下载文件!(!!)

有问题的 NGINX 配置行是:

location ~ /.(yml|yaml|html) { deny all; }

我尝试了以下但没有运气:

location ~ /(site1|site2|site3)/.+\.(yml|yaml|html) { deny all; }

老实说,我是 NGINX 的一个完整的 n00b,而且事实证明它比 Apache 更难使用。

所以我的问题是如何修改上述语句以限制对 .yaml 和 .html 文件的访问?

谢谢。

LM

4

1 回答 1

3

试试这个。它需要一个$匹配字符串的结尾。

location ~* (?:\.(?:yml|yaml|html)|~)$ {
    deny all;
}
于 2014-07-18T08:42:06.057 回答