변경 내용을 추적하고 사이트를 업데이트하기 위해 github (폐쇄 소스)를 사용하는 웹 사이트가 있습니다. 유일한 문제는 웹을 통해 .git 디렉토리에 액세스 할 수 있다는 것입니다. 이것을 멈추고 여전히 자식을 사용할 수 있습니까?
.htaccess를 사용해야합니까? .git의 권한을 변경해야합니까?
답변
폴더에 .htaccess
파일을 작성 .git
하고이 파일에 다음을 입력하십시오.
Order allow,deny
Deny from all
그러나 저장소를 다시 복제하면 손실 될 수 있습니다.
답변
이것을 웹 서버 .htaccess
의 루트 에있는 파일에 넣으십시오 .
RedirectMatch 404 /\.git
이 솔루션은 강력 하고 안전합니다 .
.git
사이트의 모든 디렉토리에 대해 작동합니다 ( 하나 이상이 있어도)- 또한 숨 깁니다 같은 다른 망할 놈의 파일
.gitignore
및.gitmodules
- 새로 추가 된
.git
디렉토리 에서도 작동합니다. - 디렉토리가 존재한다는 사실조차 알려주지 않습니다.
답변
폴더 .htaccess
에 대한 권한이 모두 .git/
작동합니다. 나는 전자를 추천한다 :
<Directory .git>
order allow,deny
deny from all
</Directory>
답변
.git
디렉토리 에서 혼란스럽게하고 싶지 않았고 Bennett의 솔루션 을 Apache 2.2에서 작동 시킬 수 없었지만 <VirtualHost>
구성에 다음을 추가하면 효과가 있습니다.
RewriteRule ^.*\.git.* - [R=404]
답변
내 .git 폴더에 대한 액세스를 개별적으로 제어하는 것이 불편하고 .htaccess 대신 apache config를 통해 폴더를 덮어 쓰거나 새 설치 등을 잊어 버리지 않도록 선택합니다.
다음은 도움이되기를 바랍니다. 우분투 16.10을 사용하고 있습니다.
- 먼저 브라우저에서 .git 폴더로 이동하면 어떻게되는지 확인하십시오. 제 경우에는 디렉토리 목록이 제공되었습니다. 보지 말아야 할 것을보고 있다면 (즉, 404를 얻지 못하고있는 경우) 다음을 수행하십시오.
- apache2ctl -V를 사용하여 HTTPD_ROOT 및 SERVER_CONFIG_FILE을 가져 오십시오.
- 내 경우 $ sudo nano /etc/apache2/apache2.conf에서 아파치 구성을 편집하려면 이것을 사용하십시오.
- 구성 파일 어딘가에 다음을 추가하십시오. RedirectMatch 404 /.git
- 아파치 다시 시작 : $ sudo service apache2 restart
- 폴더로 다시 이동하면 404가 표시됩니다.
- 나는 이것을 .gitignore로 시도하고 404도 얻었습니다.
답변
보다 강력하고 간단한 옵션은 .git
디렉토리 의 읽기 및 실행 권한을 비활성화하는 것 입니다.
예를 들어 Apache (httpd)는 대부분 특수 사용자 계정으로 실행되므로 apache
CentOS에서는 사용자로 실행되지만 .git
디렉토리는 실제 사용자 계정으로 만들어야하므로 권한을 변경하여 액세스를 간단히 차단할 수 있습니다. 또한이 접근법은 새로운 파일을 도입하지 않으며 git 명령에 영향을 미치지 않습니다.
명령은 다음과 같습니다.
chmod -R o-rx .git
답변
mod_rewrite는 원하는 효과를줍니다 :
RewriteEngine on
RewriteRule .*\.git/.* - [F]