.htaccess 파일이란?
hypertext access의 약자, 앞의 점은 숨긴 파일을 나타낸다. 이 파일은 디렉터리에 대한 설정 옵션을 제공한다. 웹서버 접근 제어 파일로, 내부적으로 새로운 타입을 명명하거나 디렉토리 접근 권한 등 다양한 설정을 변경할 수 있다.
.htaccess의 용도
허가, 인증, URL재작성, 스팸봇 차단, SSL, 디렉토리 리스팅, 에러 응답 커스터마이징 등
.htaccess의 역할
아파치같은 웹서버에서 브라우저같은 클라이언트에서 접근할 때 어떤 식으로 서비스를 제공할 지 apache2.conf와 sites-enabled 가상 호스트 설정 파일을 통해 결정하는데, 이때 서비스할 파일이 위치한 곳의 디렉토리 경로를 지정하게 된다. 그리고 이 디렉토리에 접근을 허용할지 말지, 어떻게 보여줄지 등을 정하게 된다. sites-enabled에 있는 파일에서 <Directory>블럭을 통해 이것을 지정하게 되는데 .htaccess 파일은 이것과 똑같은 역할을 한다. <Directory>블럭을 통한 서버의 전역 설정이 있는 상태에서 .htaccess 파일을 사용하면 .htaccess가 위치한 디렉토리에 대한 허용 규칙을 오버라이드(덮어쓰게)하게 된다.
아파치 웹서버의 설정 탐색 순서
- 웹브라우저(클라이언트)
- apache2.conf 로드
- apache2.conf에 포함된 include 구문으로 sites-enabled 로드
- 서비스 디렉토리 권한 등 옵션 적용 후
- 다시 웹브라우저에 결과 리턴