2012-06-27 5 views
2

은 어떻게 아파치/htaccess로 구성이를 구성 할 수 있습니다htaccess로 : 조건부 인증

나는 하나 제외한 모든 파일에 대한 인증 HTTP를 원한다. click.phpjs/clickheat.js 파일은 인증없이 1.2.3.4에서 액세스 할 수 있습니다.

FilesMatch를 시도했지만 반전 할 수 없습니다. 그래서 나는 require valid-user을 넣을 수 없다. 내가 SetEnv을 사용하여 생각,하지만 나중에 어떻게 확인합니까?

<FilesMatch "(click\.php|clickheat\.js)"> 
    # what here? 
</FilesMatch> 

다른 아이디어는 mod_rewrite를 사용하는 것이 었습니다. 음, 주어진 호스트의 두 파일에 대한 액세스를 허용하고 다른 어느 곳에서도 거부 할 수 있습니다. 하지만 HTTP 인증을 사용하여 연결하는 방법은 무엇입니까?

# allows access to two files from the given IP 
RewriteCond %{REMOTE_ADDR} 1\.2\.3\.4 
RewriteCond %{REQUEST_URI} ^/click.php [OR] 
RewriteCond %{REQUEST_URI} ^/js/clickheat\.js 
RewriteRule (.*) - [L] 

# denies everything else 
RewriteRule (.*) - [F,L] 

그래서 내가 좋아하는 솔루션은한다 RewriteCond/RewriteRule의를 통해 HTTP-인증을 가능하게 할 것이다.

배경 (또는 내가 이것을하고 싶은 이유) : 클릭 히트 (http://www.labsmedia.com/clickheat/index.html) 설치를 보호하려고합니다. 그리고 1.2.3.4는 리모컨으로 mod_proxy를 실행하고 이것들에 대한 액세스를 클릭 히트 호스트로 파일을 재전송합니다.

Order Deny,Allow 
Deny from All 

Satisfy Any 

AuthType Basic 
AuthName "clickheat" 
AuthUserFile /var/www/clickheat/.htpasswd 
Require valid-user 

<FilesMatch "(click\.php|clickheat\.js)"> 
     Deny from All 
     Allow from 1.2.3.4 
</FilesMatch> 

키가 인증 또는 IP- 기반 액세스를 허용하거나 Satisfy Any이다

답변

1

좋아, 해결책을 발견 하였다.