2011-06-10 2 views
0

역방향 프록시 CloudFlare (테스트 중)를 실행하면서 단일 IP에 대한 사이트 액세스를 제한하려고합니다.htaccess와 CloudFlare를 사용하여 302 리디렉션을 설정 하시겠습니까?

RewriteEngine On 
RewriteCond %{REMOTE_HOST} !32\.231\.45\.342 
RewriteRule $ http://www.google.com [R=302,L] 

# cloudflare가 켜진 상태로 주석 처리되지 않은 #은 원격 호스트 IP에서도 항상 Google로 리디렉션됩니다.

CloudFlare의 모든 IP를 추가하면 분명히 도움이되지 않습니다.

필자가 볼 수있는 유일한 해결책은 배열에 액세스 권한을 부여하고 PHP를 통해 확인하고, 찾을 수없는 경우 다른 곳으로 리디렉션하려는 모든 IP를 저장하는 것입니다. 그러나, 내가 그걸로 도망 갈 수 있다면, 차라리 htaccess를 사용할 것입니다. 생각?

+0

Google로 리디렉션해야하는 이유는 무엇입니까? 왜 .htaccess의'Allow from'과'Deny from all' 문을 사용하지 않을까요? –

답변

0

mod_cloudflare (https://github.com/cloudflare/CloudFlare-Tools)는 IP를 올바른 것으로 수정해야합니다.

는 다음과 같이 X-Forwarded-For 헤더 사용할 수 있습니다 보안이 필요하지 않는 경우 :

RewriteEngine On 
# if X-Forwarded-For is set 
RewriteCond %{HTTP:X-Forwarded-For} . 
RewriteCond %{HTTP:X-Forwarded-For} !32\.231\.45\.342 [OR] 

# if X-Forwarded-For isn't set default to remote_host 
RewriteCond %{HTTP:X-Forwarded-For} ^$ 
RewriteCond %{REMOTE_HOST} !32\.231\.45\.342 
RewriteRule $ http://www.google.com [R=302,L] 

사람들이 알고있는 경우 IP는 32.231.45.342 것을 속일 수있을를 맞춤 X-Forwarded-For를 설정합니다. cloudflare를 통과하지 못했다면 X-Forwarded-For 헤더를 자신의 것으로 변경해야만 작동합니다.

관련 문제