Chr*_*nch 121 git .htaccess apache2
我有一个网站,我使用github(封闭源)来跟踪更改和更新网站.唯一的问题是,看起来.git目录可以通过网络访问.我怎么能阻止它仍然可以使用git?
我应该使用.htaccess吗?我应该更改.git的权限吗?
Ben*_*wee 359
将它放在Web服务器根目录下的.htaccess文件中:
RedirectMatch 404 /\.git
Run Code Online (Sandbox Code Playgroud)
这个解决方案非常强大且安全:它
.git于您网站中的所有目录,即使有多个目录,.gitignore和的其他Git文件.gitmodules .git目录,以及Thi*_*ter 33
.htaccess在.git文件夹中创建一个文件,并将以下内容放在此文件中:
Order allow,deny
Deny from all
Run Code Online (Sandbox Code Playgroud)
Jak*_*ton 31
无论.htaccess和权限的.git/文件夹会工作.我推荐前者:
<Directory .git>
order allow,deny
deny from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
我不想在.git目录中捣乱并且无法让Bennett的解决方案在Apache 2.2上运行,但是在我的<VirtualHost>配置中添加了以下工作:
RewriteRule ^.*\.git.* - [R=404]
Run Code Online (Sandbox Code Playgroud)
一个更健壮和简单的选项是禁用目录的 READ 和 Execution 权限.git。
由于Apache(httpd)大多运行在一个特殊的用户帐户下,例如它apache在CentOS上以用户身份运行,而.git目录必须在真实用户帐户下创建,因此我们可以通过更改权限来简单地阻止访问。此外,这种方法不会引入任何新文件,也不会影响 git 命令。
命令可以是:
chmod -R o-rx .git
Run Code Online (Sandbox Code Playgroud)
小智 5
mod_rewrite 会给你想要的效果:
RewriteEngine on
RewriteRule .*\.git/.* - [F]
Run Code Online (Sandbox Code Playgroud)
我不习惯单独控制对.git文件夹的访问,并选择通过apache配置而不是.htaccess来执行,以防止我覆盖它们,或忘记新安装等.
以下是一些希望有所帮助的详细说明.我正在使用Ubuntu 16.10.