Делать.веб-каталог git недоступен

У меня есть веб-сайт, который я использую github (закрытый источник) для отслеживания изменений и обновления сайта. Единственная проблема в том, что она появляется .каталог git доступен через интернет. Как я могу остановить это и по-прежнему использовать git?

должен ли я использовать .реврайт? Должен ли я изменить разрешения .ГИТ?

7 ответов


создать на .git папка и поместите в этот файл следующее:

Order allow,deny
Deny from all

положите это в на root веб-сервер:

RedirectMatch 404 /\.git

данное решение надежная и безопасное: это

  • для всех .git каталоги на вашем сайте, даже если их несколько,
  • также скрывает другие файлы Git, такие как .gitignore и .gitmodules
  • работает даже для недавно добавленной .git каталоги и
  • даже не выдает тот факт, что каталоги существуют.

и .htaccess и разрешения будет работать. Я рекомендую первое:

<Directory .git>
    order allow,deny
    deny from all
</Directory>

mod_rewrite даст вам желаемый эффект:

RewriteEngine on
RewriteRule .*\.git/.* - [F]

Я не хотел возиться в для работы на Apache 2.2, но добавление следующего к моему <VirtualHost> настройки работал:

RewriteRule ^.*\.git.* - [R=404]

Мне неудобно контролировать доступ к моему .git папки по отдельности и выбрать, чтобы сделать это через Apache config вместо .htaccess, чтобы предотвратить их перезапись или забыть о новой установке и т. д.

вот некоторые подробные инструкции, надеюсь, они помогут. Я использую Ubuntu 16.10.

  1. сначала проверьте, что произойдет, если вы перейдете к .папка git в браузере. В моем случае мне был представлен список каталогов. Если вы видите то, что не должны видеть (т. е. вы не получаете 404), сделайте следующее.
  2. используйте apache2ctl-V, чтобы получить HTTPD_ROOT и SERVER_CONFIG_FILE
  3. используйте это для редактирования конфигурации apache, в моем случае $ sudo nano/etc/apache2 / apache2.conf
  4. добавьте в конфигурационный файл следующее: RedirectMatch 404 /.git
  5. перезапустить apache: $ sudo service apache2 restart
  6. теперь вы должны получить 404, если вы снова перейдете в папку
  7. Я пробовал это с.gitignore, а также получил 404

более надежным и простым вариантом будет отключение разрешения на чтение и исполнение