.htaccess 파일을 사용하여 Apache 웹 디렉토리 목록 비활성화


아파치 웹 서버 보안은 특히 새 웹 사이트를 설정할 때 가장 중요한 작업 중 하나입니다.

예를 들어 Apache 서버 (/ var/www/tecmint 또는/var/www/html/tecmint) 아래에 "tecmint"라는 새 웹 사이트 디렉토리를 만들고 그 안에 "index.html"파일을 넣는 것을 잊은 경우 "모든 웹 사이트 방문자가 브라우저에 http://www.example.com/tecmint를 입력하기 만하면 모든 중요한 파일과 폴더의 전체 목록을 볼 수 있다는 사실에 놀라실 수 있습니다.

이 기사에서는 .htaccess 파일을 사용하여 Apache 웹 서버의 디렉토리 목록을 비활성화하거나 방지하는 방법을 보여줍니다.

이것이 index.html이 없을 때 방문자에게 디렉토리 목록이 표시되는 방법입니다.

우선, .htaccess (또는 하이퍼 텍스트 액세스)는 웹 사이트 소유자가 서버 환경 변수 및 기타 중요한 옵션을 제어하여 웹 사이트의 기능을 향상시킬 수있는 파일입니다.

이 중요한 파일에 대한 추가 정보는 .htaccess 메서드를 사용하여 Apache 웹 서버를 보호하는 다음 문서를 참조하십시오.

  1. 25 Apache Htaccess Tricks to Secure Apache Web Server
  2. Password Protect Apache Web Directories Using .htaccess File

이 간단한 방법을 사용하면 .htaccess 파일이 웹 사이트 디렉토리 트리의 모든 및/또는 모든 디렉토리에 생성되고 그 안에있는 최상위 디렉토리, 하위 디렉토리 및 파일에 기능을 제공합니다.

먼저 마스터 아파치 구성 파일에서 웹 사이트의 .htaccess 파일을 활성화하십시오.

$ sudo vi /etc/apache2/apache2.conf    #On Debian/Ubuntu systems
$ sudo vi /etc/httpd/conf/httpd.conf   #On RHEL/CentOS systems

그런 다음 AllowOverride 지시문의 값이 AllowOverride All 으로 설정되어야하는 아래 섹션을 찾습니다.

<Directory /var/www/html/>
       Options Indexes FollowSymLinks
       AllowOverride All
</Directory>

그러나 기존 .htaccess 파일이있는 경우 다음과 같이 백업하십시오. / var/www/html/tecmint/(에 있고이 디렉토리의 목록을 비활성화하려는 경우) :

$ sudo cp /var/www/html/tecmint/.htaccess /var/www/html/tecmint/.htaccess.orig  

그런 다음 좋아하는 편집기를 사용하여 수정할 특정 디렉토리에서이를 열거 나 만들 수 있으며 아래 행을 추가하여 Apache 디렉토리 목록을 해제 할 수 있습니다.

Options -Indexes 

다음으로 Apache 웹 서버를 다시 시작합니다.

-------- On SystemD based systems -------- 
$ sudo systemctl restart apache2
$ sudo systemctl restart httpd

-------- On SysVInit based systems -------- 
$ sudo /etc/init.d/apache2 restart 
$ sudo /etc/init.d/httpd restart

이제 브라우저에 http://www.example.com/tecmint를 입력하여 결과를 확인하면 다음과 유사한 메시지가 표시됩니다.

그게 다야! "이 기사에서는 .htaccess 파일을 사용하여 Apache 웹 서버에서 디렉토리 목록을 비활성화하는 방법을 설명했습니다. 우리는 또한 다음 기사에서 동일한 목적을위한 다른 두 가지 유용하고 쉬운 방법을 다룰 것입니다.

평소와 마찬가지로 아래 피드백 양식을 사용하여이 튜토리얼에 대한 의견을 보내주십시오.