Apache Section 설정

2020. 6. 15. 19:15서버

728x90

파일 시스템 섹션

<Directory>

 <Directory> 지시어에 포함된 지시어들은 지정한 파일 시스템 디렉토리와 그 하위 디렉토리에 적용됩니다. .htaccess 파일을 이용해도 결과는 똑같습니다. 다음 설정을 예로 들면, /var/web/dir1 이하 디렉토리에서 디렉토리 지시어 적용이 됩니다.

<Directory /var/web/dir1>
 Options +Indexes 
</Directory>

<Files>

 <Files> 지시어에 포함된 지시어들은 어떤 디렉토리에 있는지 관계 없이 지정한 이름을 가진 파일에 적용됩니다. 다음 예시를 보면, 파일이 어느 디렉토리에 있는지와 관계 없이 private.html이란 이름을 한 파일의 접근을 거부합니다.

<Files private.html>
 Require all denied
</Files>

<DirectoryMatch>

 <DirectoryMatch>는 정규 표현식을 이용해 디렉토리에 대한 설정을 적용합니다. 다음 예시를 보면, '/www/' 디렉토리 하위의 숫자 3개로 구성된 이름의 모든 디렉토리에 접근을 거부합니다.

<DirectoryMatch "^/www/(.+/)?[0-9]{3}/">
 Require all denied
</DriectoryMatch>

<FilesMatch>

 <FilesMatch>는 정규 표현식을 이용해 표현식과 일치하는 파일에 대한 설정을 적용합니다. 다음 예시를 보면 gif, png라는 확장자를 가진 파일들은 접근을 허용합니다.

<FilesMatch ".+\.(gif|png)$">
 Require all granted
</FilesMatch>

<Location>

 <Location>은 "" 내의 내용과 일치하는 URL에대한 설정을 적용합니다. 다음 예시를 보면 '/private1'이하의 URL 요청은 모두 접근이 거부됩니다.

<Location "/private1">
 Require all denied
</Location>

섹션들이 결합하는 방법

  설정 섹션은 매우 특별한 방법으로 적용됩니다. 이 순서가 설정 지시어를 해석하는 방법에 중요한 영향을 주기 때문에 순서를 알고 있는 것이 중요합니다. 결합하는 순서는 다음과 같습니다.

  1. <Directory>
  2. <DirectoryMatch>
  3. <Files>와 <FilesMatch>
  4. <Location>

다음 결합하는 순서를 예로 들어보겠습니다. 이들 모두 요청에 적용된다고 가정하면 지시어는 A > B > C > D 순서로 처리됩니다.

<Location />
D
</Location>

<Files f.html>
C
</Files>

<DirectoryMatch "^.*b$">
B
</DirectoryMatch>

<Directory /a/b>
A
</Directory>
728x90

'서버' 카테고리의 다른 글

Hypervisor  (0) 2020.11.26
Nginx  (0) 2020.10.08
Apache ErrorDocument 설정  (0) 2020.06.09
Apache와 Tomcat의 연동  (0) 2020.03.18
Apache & Tomcat  (0) 2020.03.18