location ~ \..*/.*\.php$
{
return 403;
}
我将其解释为:区分大小写。[任何字符重复 0 次或更多次]/[任何字符重复 0 次或更多次]。php
例子:
.abc/abc.php
./.php
我不明白为什么 Drupal 需要这个
答案1
你是对的,区分大小写匹配 .anything/anything.php。我相信这是出于安全原因。以防有人制作/上传恶意的隐藏文件或目录(在 *nix 中,文件/目录以“。”开头,点表示隐藏文件),它将返回 http 403(禁止访问)
答案2
它旨在阻止对以点开头的目录中的 .php 文件的任何请求。例如,这些文件可能出现在 .svn 目录中,聪明的黑客可能会设法运行文件的旧版本。在某些情况下,您的 docroot 中可能有一个 .drush 目录,其中也可能包含您不想在 Web 服务器上下文中运行的 .php 文件。
在绝大多数情况下,允许这条规则继续存在肯定不会有什么坏处,而且根据您在文档根目录中的内容,安全性可能会有很大的提升。