现在我有nginx设置,我需要能够隐藏我的.git
目录。我需要什么样的重写才能停止窥探?它会在server {}
或http {}
块中的哪个位置?
答案 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;
}