.htaccess
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
.htaccess는 아파치 웹 서버의 설정을 제어하는 데 사용되는 설정 파일이다. 펄 호환 정규 표현식 기반의 아파치 지시어를 사용하며, 인증 및 권한 부여, URL 재작성, 접근 제어, 서버 측 포함, 사용자 정의 오류 페이지 설정, MIME 타입 지정, 캐시 제어, HTTPS 및 HSTS 설정 등 다양한 기능을 수행한다. .htaccess 파일은 각 요청마다 설정을 즉시 적용할 수 있고, 공유 호스팅 환경에서 개별 사용자 설정을 가능하게 하지만, 파일 시스템 접근으로 인한 성능 저하와 보안 문제, 구문 오류에 대한 취약성이 단점으로 지적된다.
더 읽어볼만한 페이지
- 웹 기술 - 공용 게이트웨이 인터페이스
공용 게이트웨이 인터페이스(CGI)는 웹 서버가 외부 프로그램을 실행하기 위한 표준 인터페이스이며, 웹 서버가 클라이언트 요청에 응답하여 프로그램을 실행하고 그 결과를 클라이언트에 전송하는 방식으로 동작한다. - 웹 기술 - FastCGI
FastCGI는 웹 서버와 외부 애플리케이션 간 효율적인 통신을 위한 프로토콜로, CGI의 단점을 보완하여 지속적인 프로세스를 통해 웹 애플리케이션의 성능과 안정성을 향상시킨다. - 설정 파일 - MSDOS.SYS
MSDOS.SYS는 MS-DOS 운영 체제의 핵심 시스템 파일로, 부팅 과정에서 시스템 초기화 및 하드웨어 설정을 관리하며, 윈도우 9x 시리즈 등장 이후에는 윈도우 부팅 옵션을 설정하는 텍스트 파일로 기능이 변화되었다. - 설정 파일 - AUTOEXEC.BAT
AUTOEXEC.BAT는 도스 및 초기 윈도우 운영 체제에서 컴퓨터 시동 시 실행되어 환경 변수 설정, 시스템 유틸리티 실행 등에 사용되는 배치 파일이다.
| .htaccess | |
|---|---|
| 일반 정보 | |
| 설명 | .htaccess 파일은 웹 서버가 디렉터리별로 동작 방식을 변경할 수 있도록 하는 디렉터리 수준 구성 파일이다. |
| 사용 목적 | 접근 제어, URL 재작성, MIME 유형 설정 등 |
| 서버 소프트웨어 | 아파치 HTTP 서버에서 주로 사용됨. |
| AllowOverride 지시어 | .htaccess 파일의 사용 가능 여부 및 범위는 서버 구성 파일의 AllowOverride 지시어에 의해 결정됨. |
2. 형식 및 언어
`.htaccess` 파일은 펄 호환 정규 표현식(PCRE) 언어의 아파치 지시어 변형으로 작성된다. 역사적인 이유로, `.htaccess` 파일의 형식은 아파치 HTTP 서버의 전역 구성 파일인 httpd.conf[3]의 제한된 하위 집합이며, 오라클 iPlanet 웹 서버[4] 및 제우스 웹 서버와 같이 매우 다른 기본 전역 구성 파일을 가진 웹 서버에서도 사용된다.
2. 1. 기본 문법
.htaccess 파일은 펄 호환 정규 표현식(PCRE) 언어의 '''아파치 지시어''' 변형으로 작성된다. 기본적인 PCRE 자체를 배우는 것은 이러한 파일 작업을 숙달하는 데 도움이 될 수 있다.역사적인 이유로, .htaccess 파일의 형식은 아파치 HTTP 서버의 전역 구성 파일인 httpd.conf[3]의 제한된 하위 집합이며, 오라클 iPlanet 웹 서버[4] 및 제우스 웹 서버와 같이 매우 다른 기본 전역 구성 파일을 가진 웹 서버에서도 사용된다.
3. 주요 용도
.htaccess 파일은 httpd.conf에 기술할 수 있는 설정 중 많은 부분을 포함할 수 있다.[5] 이름 때문에 접근 제어가 중심이라고 생각하기 쉽지만, 실제로는 그렇지 않다. .htaccess는 다음과 같은 다양한 용도로 사용된다.
- ID와 비밀번호 또는 IP 주소와 원격 호스트를 이용한 접근 제한
- 사용자 정의 오류 메시지
- MIME 타입 지정
3. 1. 인증 및 권한 부여
.htaccess 파일은 디렉토리에 대한 보안 제한을 지정하는 데 자주 사용된다.[5] .htaccess 파일은 유효한 사용자 이름과 해당 비밀번호를 저장하는 .htpasswd 파일과 함께 사용되는 경우가 많다.[5]- ID와 비밀번호에 의한 제한 - Basic 인증이나 다이제스트 인증을 사용하여 특정 ID와 비밀번호로 로그인해야만 열람할 수 있도록 한다.
- IP 주소와 원격 호스트에 의한 제한 - 특정 IP 주소와 원격 호스트의 접근만을 허용하거나 거부할 수 있도록 한다.
3. 2. URL 재작성
서버는 길고 복잡한 URL을 더 짧고 기억하기 쉬운 URL로 재작성하기 위해 `.htaccess`를 사용하는 경우가 많다.3. 3. 접근 제어 (차단)
IP 주소 또는 도메인별로 사용자를 차단하거나 허용하려면 `allow/deny`를 사용한다. 또한 악성 봇, 리퍼 및 리퍼러를 차단하는 데에도 사용된다.[5] IP 주소와 원격 호스트에 의한 제한을 통해 특정 IP 주소와 원격 호스트의 접근만을 허용하거나 거부할 수 있다.3. 4. 서버 측 포함 (SSI)
서버 측 포함을 활성화한다.[6]3. 5. 디렉토리 목록
특정 웹 페이지가 지정되지 않은 경우 서버의 응답 방식을 제어한다.[6]3. 6. 사용자 정의 오류 페이지
.htaccess 파일은 서버 측 오류 발생 시 표시되는 페이지를 변경할 수 있게 해준다. 예를 들어 HTTP 404 찾을 수 없음 오류나, 검색 엔진에 페이지가 이동했음을 알리는 HTTP 301 영구 이동과 같은 경우에 사용자 정의 오류 페이지를 설정할 수 있다.[6] 또한, ID와 비밀번호가 다르거나, 접근이 금지되었거나, 페이지를 찾을 수 없거나, 서버에서 오류가 발생했을 때 표시되는 오류 메시지를 사용자가 원하는 대로 변경할 수 있다.3. 7. MIME 유형
서버에 다양한 파일 형식을 처리하는 방법을 지시한다. 확장자(JPEG, zip 등)에 따라 Content-Type 응답 헤더를 설정한다. 웹 서버의 기본 설정과 다른 설정이 필요한 경우에 사용한다.[5]3. 8. 캐시 제어
.htaccess 파일을 사용하면 서버에서 캐싱을 제어하여 웹 브라우저 및 캐싱 프록시를 통해 웹사이트 속도를 높이고,[7] 대역폭 사용량을 줄이며, 서버 부하를 줄이고, 체감 지연 시간을 줄일 수 있다. .htaccess는 또한 웹 페이지 리소스에 캐시 수명을 추가하여 페이지를 다시 방문할 때 언급된 수명이 만료될 때까지 서버에서 리소스를 다시 요청하는 대신 브라우저 캐시에서 요소를 다시 로드한다.3. 9. HTTPS 및 HSTS
Apache 서버에서 HTTPS 및 HSTS 구현은 주로 .htaccess 파일에 언급된 올바른 URL 재작성 및 헤더 정보에 따라 달라진다. HTTPS 또는 HSTS를 배포하는 동안 파일의 구문이 잘못되면 구현이 실패한다.4. 장점
.htaccess 파일은 모든 요청마다 읽히기 때문에 변경 사항이 즉시 적용된다. 반면 서버 설정을 변경하려면 서버를 다시 시작해야 하는 메인 설정 파일과는 대조적이다.[8] 공유 웹 호스팅과 같이 여러 사용자가 있는 서버의 경우, 개별 사용자가 자신의 사이트 설정을 변경할 수 있도록 허용하는 것이 종종 바람직하며, .htaccess 파일은 메인 서버 설정 파일을 변경할 필요 없이 이러한 개별화를 가능하게 하므로 비특권 사용자도 가능하다.[8]
5. 단점
.htaccess 파일을 사용하면 다음과 같은 단점이 있다.
- 성능 저하: .htaccess를 사용하면 각 HTTP 요청마다 .htaccess 파일이 있는지 확인하기 위해 추가적인 파일 시스템 접근이 일어난다. 이러한 성능 저하가 우려되는 경우, .htaccess의 지시자를 httpd.conf로 옮기는 것이 가능하다.[11]
- 보안: 개별 사용자가 서버 구성을 수정할 수 있게 허용하면, 설정이 제대로 되지 않았을 때 보안 문제가 생길 수 있다.[12]
- 구문: .htaccess는 구문 오류에 매우 민감하다. 오타가 있으면 서버 오류가 발생하고, 오류가 있는 .htaccess가 있는 디렉터리의 웹 리소스가 표시되지 않을 수 있다.
주 서버 설정 파일인 httpd.conf를 사용하여 아파치(Apache)를 제어하는 것이 보안 및 성능상의 이유로 선호되는 경우가 많다.[10]
6. 기타
.htaccess 파일은 주로 웹 서버 설정에 사용되지만, 다른 용도로 활용되기도 한다.
6. 1. 대중문화
2020년 비디오 게임 ''고등어미디어 피쉬''(Mackerelmedia Fish)의 일부는 인터넷 문화를 탐구하는 내용을 담고 있으며, 웹사이트의 열린 .htaccess 디렉토리에 직접 구현되었다.[13]참조
[1]
웹사이트
Apache HTTP Server Tutorial: .htaccess files - Guide at Apache.org.
https://httpd.apache[...]
[2]
웹사이트
AllowOverride Directive
http://httpd.apache.[...]
2009-03-02
[3]
웹사이트
Configuration Files
http://httpd.apache.[...]
2009-03-02
[4]
웹사이트
Using the .htaccess file
http://download.orac[...]
Oracle.com
[5]
웹사이트
Apache Tutorial: Password Formats
http://httpd.apache.[...]
2009-03-02
[6]
웹사이트
Webmaster Tools Help: 301 redirects
https://support.goog[...]
2012-03-27
[7]
뉴스
How to Create and Edit WordPress htaccess File to Speed Up Your Website
https://www.wpenligh[...]
2017-09-12
[8]
웹사이트
Apache Tutorial: When (not) to use .htaccess files
http://httpd.apache.[...]
2008-01-12
[9]
웹사이트
Configuration Files - Apache HTTP Server
http://httpd.apache.[...]
2008-01-12
[10]
웹사이트
When Not to use .htaccess files
http://httpd.apache.[...]
Httpd.apache.org
2009-09-02
[11]
웹사이트
How to convert .htaccess to httpd.conf entries
http://blog.preinhei[...]
[12]
웹사이트
Protecting System Settings
http://httpd.apache.[...]
2009-03-02
[13]
웹사이트
Look at this wacky fish ARG about exploring abandoned websites
https://www.rockpape[...]
2020-08-20
[14]
웹사이트
Apache いつ .htaccess ファイルを使う(使わない)か。
http://httpd.apache.[...]
[15]
웹인용
AllowOverride Directive
http://httpd.apache.[...]
2009-03-02
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com