Ответ 1
Создайте файл .htaccess
в папке .git
и поместите в этот файл следующее:
Order allow,deny
Deny from all
У меня есть сайт, на котором я использую github (закрытый источник) для отслеживания изменений и обновления сайта. Единственная проблема заключается в том, что каталог .git доступен через Интернет. Как я могу остановить это и по-прежнему использовать git?
Должен ли я использовать .htaccess? Должен ли я изменять разрешения .git?
Создайте файл .htaccess
в папке .git
и поместите в этот файл следующее:
Order allow,deny
Deny from all
Поместите это в файл .htaccess
в корень вашего веб-сервера:
RedirectMatch 404 /\.git
Это решение надежное и безопасно: it
.git
на вашем сайте, даже если их несколько,.gitignore
и .gitmodules
.git
иОба .htaccess
и разрешения в папке .git/
будут работать. Я рекомендую первое:
<Directory .git>
order allow,deny
deny from all
</Directory>
mod_rewrite даст вам желаемый эффект:
RewriteEngine on
RewriteRule .*\.git/.* - [F]
Я не хотел гадать в каталоге .git
и не смог получить решение Bennett для работы над Apache 2.2, но добавил следующее к моей конфигурации <VirtualHost>
:
RewriteRule ^.*\.git.* - [R=404]
Более надежный и простой вариант приведет к отключению разрешения READ и Execution в каталоге .git
.
Так как в основном Apache (httpd) работает под специальной учетной записью пользователя, например, он запускается как пользователь apache
в CentOS, а каталог .git
должен быть создан под реальной учетной записью пользователя, поэтому мы можем просто заблокировать доступ путем изменения разрешения. Более того, этот подход не вводит никакого нового файла и не влияет на команды git.
Команда может быть:
chmod -R o-rx .git
Мне не удобно управлять доступом к моим папкам .git отдельно и выбирать это через конфигурацию apache вместо .htaccess, чтобы не перезаписывать их или забывать о новой установке и т.д.
Вот некоторые подробные инструкции, на которые они могут помочь. Я использую Ubuntu 16.10.