web-dev-qa-db-ja.com

.gitプロジェクトディレクトリをどのように非表示にしますか?

Nginxを設定したので、.gitディレクトリを非表示にできるようにする必要があります。詮索好きな目を止めるには、どのような書き直しが必要ですか?そして、server {}またはhttp {}ブロックのどこに配置しますか?

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

このlocationディレクティブは、サブディレクトリ内の.gitディレクトリへのアクセスを拒否します。

注:最初に評価できるように、このロケーションブロックはメインロケーションブロックの前にある必要があります。

68
rzab

非表示のディレクトリおよびファイルは、Webアクセス可能であってはなりません。あなたの質問に対する一般的な答えは:

  location ~ /\.  { return 403; }

これにより、すべてのサブディレクトリにある.git、.svn、.htaccessおよび類似のファイルへのアクセスが拒否されます。

48
Jon Jaroker

他のソリューションを使用してダウンロードできました/.git/configおよびその他、/.gitは保護されました。これは、要求されたURLの深さに関係なく、ドットで始まるすべてを拒否します。

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

これにより、誰かが http://example.com/.git にアクセスするのを防ぎますが、このようなサブディレクトリで作業している場合は http://example.com/example/.git 失敗します。あなたは本当に必要です:

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