Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

.htaccess란 무엇인가? 아파치 웹서버 설정 파일 완벽 가이드

.htaccess는 아파치(Apache) 웹서버 소프트웨어에서 사용되는 디렉터리 단위 설정 파일입니다. 웹사이트의 특정 디렉터리에 .htaccess 파일을 배치하면, 해당 디렉터리가 아파치 웹서버를 통해 로드될 때 서버가 이 파일을 자동으로 감지하고 그 안의 지시문을 실행합니다.

.htaccess 파일을 활용하면 아파치 서버의 기본 설정을 수정하거나 추가 기능을 손쉽게 확장할 수 있습니다. 대표적인 활용 사례는 다음과 같습니다.

1. 사용자 정의 에러 페이지(ErrorDocument)

커스텀 에러 페이지를 만들면 웹사이트 내 특정 URL이 작동하지 않을 때 방문자에게 친절한 안내 메시지를 보여줄 수 있습니다. 이는 사용자 경험(UX) 개선과 이탈률 감소에 큰 도움이 됩니다.

ErrorDocument 404 /error_pages/404.html

2. 디렉터리 비밀번호 보호

.htaccess를 사용하면 관리자 영역처럼 외부 노출이 필요 없는 디렉터리에 간단하게 인증을 걸 수 있습니다. 아래 코드를 적용하면 해당 디렉터리에 접근할 때 아이디와 비밀번호 입력 창이 나타납니다.

AuthName "Admin Area"
AuthUserFile /path/to/password/file/.htpasswd
AuthType Basic
require valid-user

각 줄의 의미는 다음과 같습니다.

  • 첫 번째 줄: 보호 대상 영역의 이름을 'Admin Area'로 지정합니다. 이 이름은 로그인 팝업 창에 표시됩니다.
  • 두 번째 줄: 계정 정보가 저장된 암호 파일(.htpasswd)의 위치를 지정합니다.
  • 세 번째 줄: 인증 방식을 결정합니다. 여기서는 기본 HTTP 인증 방식인 'Basic'을 사용합니다.
  • 네 번째 줄: 유효한 로그인 자격 증명을 가진 사용자만 접근을 허용하도록 설정합니다.

3. 페이지 리다이렉션(Redirection)

리다이렉트 기능을 사용하면 웹사이트 방문자를 한 문서에서 다른 문서로 자동으로 이동시킬 수 있습니다. 페이지 구조 변경이나 도메인 이전 시 유용합니다.

Redirect /old_dir/ https://www.test.com(도메인)/new_dir/index.html

4. IP 주소 기반 접속 차단

특정 IP 주소의 접근을 차단하여 스팸 트래픽이나 악성 공격으로부터 웹사이트를 보호할 수 있습니다.

order allow,deny
deny from 155.0.2.0
deny from 123.45.6.1
allow from all

위 코드는 '155.0.2.0'과 '123.45.6.1' 두 IP 주소에서 오는 방문자를 차단하고, 나머지 모든 IP 주소의 접근은 허용하라는 의미입니다.

5. MIME 타입 추가

MIME 타입을 새로 등록하려면 아래 내용을 포함한 .htaccess 파일을 생성하면 됩니다.

AddType text/html htm0

'AddType'은 MIME 타입을 추가하겠다는 지시어입니다. 그 뒤에는 MIME 타입(여기서는 text/html)이 오고, 마지막 부분에는 적용할 파일 확장자(예: 'htm0')를 지정합니다. 이렇게 하면 해당 확장자를 가진 파일이 지정된 MIME 타입으로 처리됩니다.