我想阻止访问隐藏的.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式位置的~修饰符。