阻止隐藏(点)的PHP文件

我想阻止访问隐藏的.dot文件,特别是Nginx的php文件,但我找不到解决scheme。
.ht文件在默认情况下隐藏,如下所示:

 location ~ \.ht { deny all; } 

我写了这个规则来匹配以dot开头的所有文件,但它不工作:

 location \.(.+\.*)(.*)\.(.+\.*)(.*)$ { deny all; } 

这里是一些应该隐藏的文件的例子

 /.foo.php /path/to/.foo.php 

我该怎么办?

你需要仔细看看你的location块的顺序。 这个位置:

 location ~ /\. { deny all; } 

应该匹配任何以一个以.开头的path元素的URI .

但是,它需要位于任何其他正则expression式位置块之上 。 此外,使用^~修饰符的任何前缀位置块将优先。

详情请参阅此文件 。

还请注意:您的问题中的位置块都是错误的。 第一个也会匹配index.html ,第二个是缺less正则expression式位置的~修饰符。