ngnix 简单位置匹配,这是什么意思

ngnix 简单位置匹配,这是什么意思
 location ~ \..*/.*\.php$ 
{
   return 403;
}

我将其解释为:区分大小写。[任何字符重复 0 次或更多次]/[任何字符重复 0 次或更多次]。php

例子:

.abc/abc.php

./.php

我不明白为什么 Drupal 需要这个

看:http://wiki.nginx.org/drupal

答案1

你是对的,区分大小写匹配 .anything/anything.php。我相信这是出于安全原因。以防有人制作/上传恶意的隐藏文件或目录(在 *nix 中,文件/目录以“。”开头,点表示隐藏文件),它将返回 http 403(禁止访问)

答案2

它旨在阻止对以点开头的目录中的 .php 文件的任何请求。例如,这些文件可能出现在 .svn 目录中,聪明的黑客可能会设法运行文件的旧版本。在某些情况下,您的 docroot 中可能有一个 .drush 目录,其中也可能包含您不想在 Web 服务器上下文中运行的 .php 文件。

在绝大多数情况下,允许这条规则继续存在肯定不会有什么坏处,而且根据您在文档根目录中的内容,安全性可能会有很大的提升。

相关内容