URL이 있습니다 http://example.com/web/en/press-release/
. 모든 사용자의 액세스와 해당 페이지 보기 및 http://localhost:10004/web/en/press-release/*
사용을 차단하려면 어떻게 해야 합니까 .htaccess
?
특정 IP에서만 접근이 가능하도록 하고 싶습니다.
나는 이것을 좋아했지만 작동하지 않았습니다.
# Press Release Blocked Now
RewriteCond %{HTTP_REFERER} web/en/press-release/ [NC,OR]
RewriteRule .* - [F]
답변1
만약 너라면~ 해야 하다사용.htaccess
파일당신은 그들의 한계를 알아야 합니다:
.htaccess
파일(또는 "분산 구성 파일")은 디렉터리별로 구성을 변경할 수 있는 방법을 제공합니다. 하나 이상의 구성 지시어가 포함된 파일은 특정 문서 디렉터리에 배치되며 지시어는 해당 디렉터리와 해당 디렉터리의 모든 하위 디렉터리에 적용됩니다.
즉, 다음의 설정을 제어할 수 있습니다.파일 시스템 컨테이너오히려웹 공간 컨테이너이며 기본적으로 구성은 모든 하위 디렉터리에 적용됩니다. 따라서 목표를 달성하려면 .htaccess
URL 경로에 해당하는 파일 시스템 경로에 파일을 배치해야 합니다 /web/en/press-release/
.
및 /web/en/press-release/
가 동일한 디렉토리를 참조하고 둘 다 Apache를 사용하여 파일 시스템에서 직접 제공되는 경우 (즉,localhost:10004
example.com
역방향 프록시), 파일 시스템 컨텍스트가 좋은 선택입니다. 에서구성 섹션: 무엇을 사용할지 언제:
파일 시스템 컨테이너와 웹 공간 컨테이너 중에서 선택하는 것은 실제로 매우 쉽습니다. 파일 시스템에 있는 객체에 지시어를 적용할 때는 항상
<Directory>
또는 를 사용하세요<Files>
. 파일 시스템에 상주하지 않는 객체(예: 데이터베이스에서 생성된 웹 페이지)에 지시어를 적용할 때는<Location>
.
<Location>
파일 시스템의 개체에 대한 액세스를 제한하려고 할 때는 절대 사용하지 않는 것이 중요합니다 . 이는 다양한 웹 공간 위치(URL)가 동일한 파일 시스템 위치에 매핑되어 제한 사항을 우회할 수 있기 때문입니다.
대신에mod_rewrite를 사용하여 액세스 제어, Apache는 직접액세스 제어지시문. 이를 사용하는 것이 더 간단하며 구성을 더 쉽게 읽고 관리할 수 있습니다. 그만큼Require
지령~에서mod_authz_core가지다 ip
:
Require ip 192.0.2.100
Require ip 198.51.100.0/24
Require ip 2001:DB8:C0F:FEE::/64