Saya memiliki situs web yang saya gunakan github (sumber tertutup) untuk melacak perubahan dan memperbarui situs. Satu-satunya masalah adalah, tampaknya direktori .git dapat diakses melalui web. Bagaimana saya bisa menghentikan ini dan masih bisa menggunakan git?
Haruskah saya menggunakan .htaccess? Haruskah saya mengubah izin .git?
Jawaban:
Buat
.htaccess
file di.git
folder dan letakkan yang berikut di file ini:Tetapi perhatikan, bahwa itu akan hilang jika Anda pernah mengkloning ulang repositori
sumber
.git/
direktori itu sendiri karena itu akan hilang jika Anda pernah mengkloning ulang repositori.Masukkan ini dalam
.htaccess
file di root server web Anda:Solusi ini kuat dan aman : itu
.git
direktori di situs Anda, bahkan jika ada lebih dari satu,.gitignore
dan.gitmodules
.git
direktori yang baru ditambahkan , dansumber
.git
folder, tetapi saya masih bisa mendapatkan.gitignore
file untuk ditarik.server config, virtual host, directory, .htaccess
RedirectMatch 404 /\.git.*
Keduanya
.htaccess
dan izin pada.git/
folder akan berfungsi. Saya merekomendasikan yang pertama:sumber
<Files>
,,<FilesMatch>
).Saya tidak ingin muck di dalam
.git
direktori dan tidak bisa mendapatkan solusi Bennett untuk bekerja di Apache 2.2, tetapi menambahkan berikut ini untuk<VirtualHost>
konfigurasi saya berhasil:sumber
Saya tidak nyaman dengan mengontrol akses ke folder .git saya secara individual dan memilih untuk melakukannya melalui konfigurasi apache daripada .htaccess, untuk mencegah saya menimpa mereka, atau lupa pada instalasi baru dll.
Berikut adalah beberapa petunjuk terperinci yang harap mereka bantu. Saya menggunakan Ubuntu 16.10.
sumber
Opsi yang lebih kuat dan sederhana akan menonaktifkan izin BACA dan Eksekusi dari
.git
direktori.Karena sebagian besar Apache (httpd) berjalan di bawah akun pengguna khusus, misalnya, ia berjalan sebagai pengguna
apache
di CentOS, sedangkan.git
direktori harus dibuat di bawah akun pengguna nyata, jadi kami hanya dapat memblokir akses dengan mengubah izin. Selain itu, pendekatan ini tidak memperkenalkan file baru, atau memengaruhi perintah git.Perintahnya bisa:
sumber
chmod
lagi.mod_rewrite akan memberi Anda pengaruh yang diinginkan:
sumber
.git
direktori karena mengembalikan kode terlarang daripada Tidak Ditemukan.Alih-alih mengacaukan
.htaccess
aturan seperti kebanyakan jawaban menyarankan, mengapa tidak meletakkan.git/
direktori di atas webroot?Dalam pengaturan saya,
.git
direktori saya biasanya hidup dalam sesuatu seperti:/home/web/project_name/.git/
Kode aktual saya tinggal di
/home/web/project_name/www_root/
karena root web saya (sebagaimana didefinisikan pada Apache atau Nginx .. Saya lebih suka yang terakhir) adalah
/home/web/project_name/www_root/
tidak ada cara.git
direktori dapat diakses dari web karena ia hidup "lebih tinggi" daripada webrootsumber
project_name
Direktori saya memiliki dua subdirektori: diwww_root
mana file-file itu benar-benar disajikan ketika pengunjung menelusuri situs saya, dan di.git
mana repo berada. Menarik dari pembaruan repowww_root
dan isinya. Masalahnya adalah, karena.git
direktori secara hierarkis "di atas" pengontrol depan saya, itu tidak dapat diakses melalui web.