.htaccess
파일에서 서버의 특정 부분의 접근을 제어하기위해
호스트기반 접근제한과 암호기반 인증을 동시에 사용할 수도
있다. 이 경우
일반적으로 접근제한 지시어는 (GET,
PUT, POST 등) 모든 메서드에 적용되며,
이 행동은 대부분의 경우 바람직하다. 그러나
이 지시어의 첫번째 아규먼트는 항상 from이다.
다음 아규먼트에는 세가지 형식이 있다. Allow from all을
사용하면, 아래에서 설명할
호스트명이 이 문자열과 같거나 이 문자열로 끝나면 접근을
허용한다. 그래서 이 경우 foo.apache.org는
해당되고, fooapache.org는 해당되지 않는다.
이 설정을 사용하면 아파치는
접근을 허가하는 호스트의 IP 주소
서브네트워크로 제한하기위해 IP 주소 앞의 1에서 3 바이트.
네트워크 a.b.c.d와 넷매스크 w.x.y.z. 더 세밀하게 서브네트워크로 제한할때 사용한다.
앞의 경우와 같지만, 상위 nnn개 비트 값이 1인 넷매스크를 사용한다.
마지막 세가지 예는 정확히 동일한 호스트들을 지칭한다.
다음과 같이 IPv6 주소와 IPv6 서브네트워크를 지정할 수도 있다:
Allow from env=env-variable을
사용하면, env-variable 환경변수가 정의된 경우
접근을 허가한다. User-Agent (브라우저 종류),
Referer, 다른 HTTP 요청 헤더에 따라 접근을
허가할 수 있다.
이 경우 user-agent 문자열이 KnockKnock/2.0으로
시작하는 브라우저의 접근은 허용하고, 나머지는 모두 거부한다.
이 지시어를 사용하여 호스트명, IP 주소, 환경변수에 따라
서버 접근을 제한할 수 있다.
Deny,AllowAllow,DenyMutual-failureOrder Allow,Deny와
같은 일을 하기때문에 사용하지 않는다.키워드는 쉼표로만 구분한다; 사이에 공백이 있으면
안된다. 모든 경우
아래 예에서 apache.org 도메인의 모든 호스트의 접근은 허용하지만, 다른 호스트는 모두 거부한다.
아래 예에서 foo.apache.org 하위도메인에 있는 호스트만 거부하고, apache.org 도메인에 있는 호스트는 모두 접근을 허용한다. 기본적으로 접근을 거부하기때문에 apache.org 도메인에 속하지 않는 호스트는 접근을 거부한다.
반대로 위의 Deny,Allow로 변경하면, 모든 호스트의 접근을
허용한다. 설정파일에서 지시어가 나오는 순서와 관계없이
Allow from apache.org를 제일 마지막에 처리하여
Deny from foo.apache.org의 효과를 무시하기
때문이다. 또, 기본적으로 접근을 허가하므로
apache.org 도메인에 속하지 않는 호스트도 모두
접근을 허가한다.
는 기본적으로 접근을 거부하기때문에
/www 디렉토리에 대한 모든 접근을 거부한다.
.htaccess 파일에 있는