変更を追跡し、サイトを更新するためにgithub(クローズドソース)を使用するWebサイトがあります。唯一の問題は、.gitディレクトリにWeb経由でアクセスできるように見えることです。どうすればこれを止めてもgitを使用できますか?
.htaccessを使用する必要がありますか? .gitのアクセス許可を変更する必要がありますか?
.htaccess
ファイルの.git
フォルダーを作成し、このファイルに以下を入力します。
Order allow,deny
Deny from all
これをWebサーバーのrootの.htaccess
ファイルに入れます。
RedirectMatch 404 /\.git
このソリューションはrobustおよびsecure:it
.git
ディレクトリで機能します(複数ある場合でも)。.gitignore
や.gitmodules
などの他のGitファイルも非表示にします.git
ディレクトリでも機能します。両方 .htaccess
および.git/
フォルダーが機能します。前者をお勧めします:
<Directory .git>
order allow,deny
deny from all
</Directory>
私は.git
ディレクトリで、Apache 2.2で動作するために Bennettのソリューション を取得できませんでしたが、私の<VirtualHost>
設定は機能しました:
RewriteRule ^.*\.git.* - [R=404]
私は.gitフォルダーへのアクセスを個別に制御することに不安があり、それらを上書きしたり、新しいインストールを忘れたりするのを防ぐために、.htaccessの代わりにApache configを介して行うことを選択します。
役立つ詳細な手順を以下に示します。 Ubuntu 16.10を使用しています。
mod_rewriteは、望ましい効果をもたらします。
RewriteEngine on
RewriteRule .*\.git/.* - [F]
より堅牢でシンプルなオプションは、.git
ディレクトリの読み取りおよび実行権限を無効にすることです。
ほとんどの場合、Apache(httpd)は特別なユーザーアカウントで実行されるため、CentOSではApache
ユーザーとして実行されますが、.git
ディレクトリは実際のユーザーアカウントで作成する必要があります。許可を変更してアクセスをブロックします。さらに、このアプローチは新しいファイルを導入せず、gitコマンドにも影響しません。
コマンドは次のとおりです。
chmod -R o-rx .git