2020. 6. 15. 19:15ㆍ서버
파일 시스템 섹션
<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>
섹션들이 결합하는 방법
설정 섹션은 매우 특별한 방법으로 적용됩니다. 이 순서가 설정 지시어를 해석하는 방법에 중요한 영향을 주기 때문에 순서를 알고 있는 것이 중요합니다. 결합하는 순서는 다음과 같습니다.
- <Directory>
- <DirectoryMatch>
- <Files>와 <FilesMatch>
- <Location>
다음 결합하는 순서를 예로 들어보겠습니다. 이들 모두 요청에 적용된다고 가정하면 지시어는 A > B > C > D 순서로 처리됩니다.
<Location />
D
</Location>
<Files f.html>
C
</Files>
<DirectoryMatch "^.*b$">
B
</DirectoryMatch>
<Directory /a/b>
A
</Directory>
'서버' 카테고리의 다른 글
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 |