你如何隐藏.git项目目录?

时间:2010-06-08 16:36:47

标签: regex git nginx

现在我有nginx设置,我需要能够隐藏我的.git目录。我需要什么样的重写才能停止窥探?它会在server {}http {}块中的哪个位置?

4 个答案:

答案 0 :(得分:65)

http {
  server {
    location ~ /\.git {
      deny all;
    }
  }
}

location指令将拒绝访问任何子目录中的任何.git目录。

注意:此位置块必须位于主要位置块之前,以便可以先对其进行评估。

答案 1 :(得分:47)

隐藏的目录和文件永远不应该是Web可访问的。您问题的一般答案是:

  location ~ /\.  { return 403; }

这会拒绝访问任何子目录中的.git,.svn,.htaccess和类似文件。

答案 2 :(得分:2)

使用其他解决方案,我可以下载/.git/config和其他解决方案,仅/.git受保护。无论请求的URL的深度如何,此命令都会拒绝以点开头的所有内容:

location ~ /\.(.*)/?(.*)? {
    return 404;
}

答案 3 :(得分:1)

这会阻止有人点击http://example.com/.git,但如果你在像http://example.com/example/.git这样的子目录中工作,它将会失败。你真的需要:

location ~ .*/\.git {
    deny all;
}