설명: 서버 영역에 액세스할 수 있는 호스트를 제어합니다. 구문: Allow from all|host|env=env-variable [host|env=env-variable] ...
컨텍스트: 디렉토리, .htaccess
적용 범위: 한도
상태: 베이스
모듈: mod_access
Allow 지시문은 서버 영역에 액세스할 수 있는 호스트에 영향을 줍니다. 호스트 이름, IP 주소, IP 주소 범위 또는 기타 환경 변수에서 캡처된 클라이언트 요청 특성을 사용하여 액세스를 제어할 수 있습니다.
이 지시문의 첫 번째 매개변수는 항상 from입니다. 후속 매개변수는 세 가지 다른 형식을 취할 수 있습니다. Allow from all이 지정되면 모든 호스트에 액세스가 허용되며 아래 설명된 대로 Deny 및 Order 지시어를 구성해야 합니다. 호스트 또는 호스트 그룹의 특정 하위 집합만 서버에 액세스하도록 허용하려면 다음 형식 중 하나로 호스트를 지정할 수 있습니다.
도메인 이름(일부)
예: apache.org에서 허용
이름이 지정된 문자열과 일치하거나 끝나는 호스트에 대한 액세스를 허용합니다. 전체 이름 구성 요소만 일치하므로 위의 예에서는 foo.apache.org와 일치하지만 fooapache.org는 일치하지 않습니다. 이러한 구성을 사용하면 HostnameLookups 지시문이 전체 IP 주소를 설정하는지 여부에 관계없이 서버가 클라이언트의 IP 주소에 대해 역방향 도메인 이름 조회 작업을 수행하게 됩니다. 예: 10.1.2.3에서 허용.
하나의 호스트의 하나의 IP 주소에서 액세스를 허용합니다.
일부 IP 주소 예: 10.1부터 허용
IP 주소의 처음 1~3바이트는 서브넷 제한에 사용됩니다.
네트워크/마스크 쌍 예: 10.1.0.0/255.255.0.0에서 허용
네트워크 abcd 및 마스크 wxyz. 보다 정확한 서브넷 제한이 필요합니다.
네트워크/nnn 지역 내 라우팅 지정 없음 예: 10.1.0.0/16에서 허용
마스크가 nnn개의 상위 바이트로 구성된다는 점을 제외하면 이전 사례와 유사합니다.
위의 마지막 세 가지 예는 정확히 동일한 호스트 집합과 일치합니다.
IPv6 주소와 IPv6 서브넷은 다음과 같이 지정할 수 있습니다.
fe80::a00:20ff:fea7:ccea에서 허용
fe80::a00:20ff:fea7:ccea/10에서 허용
Allow 지시문의 세 번째 매개변수 형식은 환경 변수의 확장으로 지정된 서버에 대한 액세스를 허용합니다. Allow from env=env-variable을 지정한 경우 환경 변수 env-variable이 존재하면 접근 요청을 허용합니다. 서버는 mod_setenvif에서 제공하는 지시문을 사용하여 클라이언트 요청에 따라 유연한 방식으로 환경 변수를 설정하는 기능을 제공합니다. 따라서 이 지시문을 사용하면 User-Agent(브라우저 유형), Referer 또는 기타 HTTP 요청 헤더 필드와 같은 필드를 기반으로 액세스를 허용할 수 있습니다.
예:
SetEnvIf 사용자 에이전트 ^KnockKnock/2.0 let_me_in
<디렉토리 /docroot>
주문 거부, 허용
모두 거부
env=let_me_in에서 허용
</디렉토리>
이 경우 KnockKnock/2.0으로 시작하는 사용자 에이전트 식별자를 보내는 브라우저는 액세스가 허용되지만 다른 모든 브라우저는 차단됩니다.
거부 지침 설명: 서버 액세스가 금지된 호스트 제어 구문: Deny from all|host|env=env-variable [host|env=env-variable] ...
컨텍스트: 디렉토리, .htaccess
적용 범위: 한도
상태: 베이스
모듈: mod_access
이 지시문을 사용하면 호스트 이름, IP 주소 또는 환경 변수를 기반으로 서버에 대한 액세스를 제한할 수 있습니다. Deny 명령의 매개변수 설정은 Allow 명령의 매개변수 설정과 정확히 동일합니다.
주문 지침 설명: 기본 액세스 상태와 허용 및 거부 지침이 평가되는 순서를 제어합니다.
구문: 주문 주문
기본값: 주문 거부, 허용
컨텍스트: 디렉토리, .htaccess
적용 범위: 한도
상태: 베이스
모듈: mod_access
Order 지시어는 기본 액세스 상태와 Allow 및 Deny 지시어가 평가되는 순서를 제어합니다. 주문은 다음 예 중 하나입니다.
거부,허용
거부 지침은 허용 지침보다 먼저 평가됩니다. 기본적으로 모든 액세스가 허용됩니다. Deny 지시어와 일치하지 않거나 Allow 지시어와 일치하는 클라이언트는 서버에 액세스할 수 있습니다.
허용, 거부
Allow 지시문은 Deny 지시문보다 먼저 평가됩니다. 기본적으로 모든 액세스는 금지되어 있습니다. Allow 지시문과 일치하지 않거나 Deny 지시문과 일치하는 클라이언트는 서버에 액세스하는 것이 금지됩니다.
상호 실패
허용 목록에는 표시되고 거부 목록에는 표시되지 않는 호스트만 액세스가 허용됩니다. 이 명령은 Order Allow, Deny와 동일한 효과를 가지며 더 이상 사용되지 않습니다. 여기에는 어떤 구성이 포함됩니까?
키워드는 쉼표로만 구분할 수 있으며 그 사이에는 공백이 있어서는 안 됩니다. 각 Allow 및 Deny 지시문은 모든 경우에 평가됩니다.
아래 예에서는 apache.org 도메인의 모든 호스트에 대한 액세스가 허용되지만 다른 호스트에 대한 액세스는 거부됩니다.
주문 거부, 허용
모두 거부
apache.org에서 허용
다음 예에서는 액세스가 거부된 foo.apache.org 하위 도메인에 포함된 호스트를 제외하고 apache.org 도메인의 모든 호스트에 대한 액세스가 허용됩니다. 기본 상태는 서버에 대한 접근을 거부하는 것이므로 apache.org 도메인에 속하지 않는 모든 호스트는 접근이 허용되지 않습니다.
주문 허용, 거부
apache.org에서 허용
foo.apache.org에서 거부
반면, 이전 예제의 Order 지시문을 Deny,Allow로 변경하면 모든 호스트의 액세스가 허용됩니다. 이는 구성 파일에 있는 지시문의 실제 순서와 관계없이 Allow from apache.org 지시문이 마지막으로 평가되어 이전 Deny from foo.apache.org를 덮어쓰기 때문입니다. 기본 상태가 허용으로 변경되었기 때문에 apache.org 도메인에 속하지 않은 모든 호스트에도 액세스가 허용됩니다.
허용 및 거부 명령이 동반되지 않더라도 Order 명령이 있으면 서버의 특정 부분에 대한 액세스에 영향을 미치게 됩니다. 이는 기본 액세스 상태에 영향을 미치기 때문입니다. 예를 들어,
<디렉토리 /www>
주문 허용, 거부
</디렉토리>
기본 상태가 거부로 설정되므로 /www 디렉터리에 대한 모든 액세스가 비활성화됩니다.
Order 지시문은 서버 구성의 각 세그먼트 내에서만 액세스 지침 처리를 제어합니다. 예를 들어 <Location> 섹션에 나타나는 허용 또는 거부 지시문은 Order 지시문의 설정에 관계없이 <Directory> 섹션 또는 .htaccess 파일에 나타나는 허용 또는 거부 지시문 이후에 항상 평가됩니다. 왜. 구성 섹션 병합에 대한 자세한 내용은 디렉터리, 위치 및 파일 섹션 작동 방식을 참조하세요.