# httpd.conf
<Directory />
AllowOverride none
Require all denied
</Directory>
<Directory "${SRVROOT}/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Files ".ht*">
Require all denied
</Files>
디렉토리 단위로 지정
디렉토리 단위로 범위를 지정하는 경우에는 섹션 컨테이너로 "<Directory>"를 사용한다.
<Directory 경로>
... 설정 지시어 ...
</ Directory>
디렉토리를 나타내는 경로는 전체 경로를 지정한다.
Windows의 경우 드라이브에서 지정된다. 별표(*) 및 물음표(?)와 같은 와일드 카드를 사용한 지정도 가능하다
<Directory />
...
</ Directory>
<Directory "${SRVROOT}/htdocs">
...
</ Directory>
위에서는 경로로 "/"와 "${SRVROOT}/htdocs"두 가지가 지정되어 있다. 디렉토리로 지정되면 지정된 디렉토리와 그 디렉토리에 포함된 모든 하위 디렉토리 전체가 포함된다. "${SRVROOT}/htdocs"라고 지정되어 이 디렉토리 아래에 있는 모든 파일 및 하위 디렉토리 모두가 대상이 된다.
${SRVROOT}는 아래와 같이 지정되어 있기에 실제 경로는 "${SRVROOT}/htdocs"의 실제 경로는 "/usr/local/apache/htdocs" 이렇게 된다.
Define SRVROOT "/usr/local/apache"
파일 단위로 지정
파일 단위로 범위를 지정하는 경우에는 섹션 컨테이너로 <Files>를 사용한다.
<Files 파일명> ... 설정 지시어 ... </ Files>
파일 이름을 지정하는 경우 해당 파일이 존재하는 디렉토리에 관계없이 특정 파일 이름의 파일이나 특정 확장자를 가진 파일 전반에 설정을 하고 싶은 경우에 이용하면 편리한다. 파일명도 별표(*) 및 물음표(?)와 같은 와일드 카드를 사용한 지정도 가능하다.
"httpd.conf"파일에 작성된 예를 보면 다음과 같이 기술되어 있다.
<Files ".ht*">
...
</Files>
위에서는 ".ht*"라고 지정되어서 이 와일드 카드와 일치하는 파일명은 모두 적용된다. 예를 들면, "a.html"와 파일명이 모두 적용된다.
그리고 아래와 같이 파일명의 정규표현식으로도 사용 가능하다. 정규표현식으로 작성되어 있으면 이 정규표현식과 일치하는 파일명이 모두 적용된다
<Files ~ "\.(htm|html|css|js|php)$">
...
</Files>
위에 예는 htm, html, css, js, php가 모두 적용된다. 이와 동일하게 <FileMatch>를 사용해서도 정규표현식이 가능하다. <Files>와 다른 점은 " ~"를 붙히지 않아도 정규표현식이 적용된다.
<FilesMatch "\.(htm|html|css|js|php)$">
...
</ FilesMatch>
파일명으로 범위 지정된 설정이 여러개가 작성되었다면, 작성된 순서대로 설정이 활성화되어 간다. 디렉토리의 경우 경로가 가장 짧은 이었지만, 파일명의 경우는 작성된 순서대로 적용되어가는 점에 주의하도록 한다.
URL 경로 단위로 지정
URL 경로 단위로 범위를 지정하는 경우에는 섹션 컨테이너로 <Location>를 사용한다.
<Location URL경로>
... 설정 지시어 ...
</ Location>
실제 파일의 존재 위치와는 다르게 어떻게 호출되는지의 URL 경로(및 해당 URL 경로로 시작하는 전체 URL)에 설정이 적용된다. 경로는 URL이 "http://호스트/aaa/bbb"라면 "/aaa/bbb"부분을 지정한다.
<Location /aaa/bbb>
...
</ Location>
"Location"는 데이터베이스으로 부터 동적으로 URL을 생성하는 경우에 사용하면 편리하다.
'Studying' 카테고리의 다른 글
[php] 두 좌표간의 거리 구하기 (0) | 2021.09.28 |
---|---|
[리눅스] 파일 속성 변경 명령어 (chattr,lsattr) (0) | 2021.09.15 |
[리눅스] Apache 디렉토리 리스팅 제거 (0) | 2021.09.03 |
[리눅스] tar, gz 압축 및 해제 (0) | 2021.08.11 |
리눅스 명령어 (버전확인) (0) | 2021.08.10 |
댓글