2011-05-09 7 views
1

Apache 웹 루트에 다음 디렉토리 구조가 있습니다.폴더 액세스 제한 Apache

"소스"폴더를 외부 세계로 제한하고 싶습니다. 현재 URL을 통해 액세스 할 수 있습니다.

어떻게이 작업을 수행 할 수 있습니까?

index page

답변

5

소스 폴더 안에 .htaccess 파일을 넣어 :

order allow deny 
deny from all 
+0

주셔서 감사합니다 .htaccess 파일을 추가했지만 여전히 운이 좋았습니다. URL을 통해 소스 폴더와 콘텐츠에 액세스 할 수 있습니다. –

+0

@Roshan 그러면 .htaccess 파일이 무시되는 것 같습니다. .htaccess가 파일을 덮어 쓸 수 있도록 Apache에서 사이트 구성을 확인하십시오. –

+1

@Roshan 사이트는 'httpd.conf' 파일 또는'sites-available' 파일의 어딘가에 정의 될 것입니다. ''섹션이있을 것입니다 - 그 섹션 안에'AllowOverride All'을 추가해야합니다. 또한,'AccessFileName'이'.htaccess'로 설정되었는지 확인하십시오. 그런 다음'apache2ctl restart'을 사용하여 아파치를 다시 시작하십시오. –

1
chmod -R o-rwx source 

이 디렉토리 소스에 외부 세계에 대한 사용 권한을 제거하고 모든 콘텐츠는

+1

-1 아파치를 가정하면 서버가이 파일에 대한 액세스 권한이 필요하지만, 아파치 인 장난 꾸러기 사람이 브라우저를 통해 간다면 파일에 액세스하려고 시도하는 동일한 사용자. 즉 누군가는 여전히'source/notpublic.php? action = dosomethingnaughty'를 실행할 수 있습니다. –

+0

이것은 숨길 것입니다하지만 내 클라이언트/서버 PHP 파일을 대답을 서버에 오류 감사를주는 다음 소스 폴더에 액세스 할 수 없습니다 –

+1

글쎄, 당신이 질문에 지정하지 않았다 :) –

1

디렉터를 열 때 표시되는 기본 기본 파일은 index.html이므로 액세스 금지 알림이있는 각 디렉토리에 index.html 파일을 넣을 수도 있습니다 와이.

+1

이렇게하면 디렉토리를 탐색 할 수 없지만 누군가가 스크립트를 실행하는 것을 막을 수는 없습니다. 예를 들어 누군가'source/notpublic.php? action = dosomethingnasty'를 실행할 수 있습니다. –

-1

당신은 디렉토리의 index.php를 삽입하고 작성하여 존재하지 않는 것처럼 보이게 할 수

<?php 
    header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); 
?>