location ~ \..*/.*\.php$ { return 403; }
我把它解释为:区分大小写[任何字符重复0次或多次] / [任何字符重复0次或更多次] .php
例子:
名为.abc / abc.php
./.php
我不明白为什么我需要这个Drupal
请参阅: http : //wiki.nginx.org/drupal
你是正确的大小写匹配.anything / anything.php。 我相信这是出于安全原因。 如果有人上传/下载恶意隐藏文件或目录(在* nix中,文件/ dir以“。”表示隐藏文件 ),则会返回http 403(禁止)
它旨在阻止以点开头的目录中对.php文件的任何请求。 这些文件可以出现在.svn目录中,例如,聪明的黑客可以pipe理运行旧版本的文件。 也有的情况下,你的docroot中可能有一个.drush目录,它也可能包含你不想运行在web服务器上下文中的.php文件。
这绝对不会损害绝大多数的情况下允许这个规则继续存在,并且根据你在你的文件根据什么坐着,安全的增益可能是相当大的。