
저는 Red Hat 4.1.2에서 Apache 2.0을 사용하는 사이트를 담당하고 있습니다.
사이트 루트 디렉터리의 .htaccess 파일에 다음 줄을 추가하여 사용자 지정 오류 페이지를 표시하도록 사이트를 구성했습니다.
ErrorDocument 403 /403.html
테스트를 위해 사이트 애플리케이션에서 내 IP 주소를 차단했습니다. 그러면 .htaccess 파일에 다음과 같은 결과가 나타납니다(간단하게 목록을 편집하고 IP를 변경했습니다).
SetEnvIfNoCase REMOTE_ADDR "^(0\.0\.0\.1|0\.0\.0\.2|0\.0\.0\.3).*" BadIP
deny from env=BadIP
"잘못된" IP에서 사이트에 액세스하려고 할 때 특정 페이지를 가져오려고 하면 사용자 지정 오류 페이지가 표시됩니다(예:http://example.com/index.html).
그러나 루트 디렉터리만 가져오려고 하면(예:http://example.com), 대신 Apache 테스트 페이지가 표시됩니다.
사용자 정의 오류 페이지와 작동하도록 사이트의 루트 디렉터리를 가져올 수 있는 방법이 있습니까?
편집: 제가 약간의 혼란을 야기한 것 같습니다. 명확히 하기 위해:
- 루트 URL을 얻으려고 하면 루트 페이지는 다음과 같습니다.~ 아니다봉사; 내가 받은 것은 "이 페이지를 읽을 수 있다면 이 사이트에 설치된 Apache HTTP 서버가 제대로 작동하고 있다는 의미입니다."라는 페이지입니다. 그래서 예상대로 차단되었는데 403 오류 페이지가 표시되지 않습니다.
- 루트 아래에 있는 항목을 얻으려고 하면 사용자 정의 403.html 페이지가 나타납니다.
업데이트:
나는 최신 Apache 버전(2.2.25)에서 이것을 시도했습니다. 나는 또한 그것을 시도했다없이ErrorDocument 지시문 또는 SetEnv 항목. .htaccess 파일에는 다음이 포함됩니다.오직이 3줄:
order allow,deny
allow from all
deny from 0.0.0.0
여기서 0.0.0.0은 실제 IP 주소로 대체됩니다.
결과는 동일합니다. example.com을 가져오면 Apache "If you can read this" 테스트 페이지가 표시되고, example.com/x를 가져오면 내장된 "Forbidden ... you don't havePermission(권한이 없습니다. 권한이 없습니다)" 메시지가 표시됩니다. 이 서버의 /x에 액세스하려면" 페이지를 참조하세요.