2014-07-09 6 views
0

나는 Heroku에 배치 된 PHP/Apache 어플리케이션을 가지고 있습니다. 나는 Heroku에서 실행할 때 기본 인증을 활성화하려고합니다. 이것은 잘 작동했습니다 ...아파치와 Heroku에서 ENV 변수 접근

그러나 PASSWORD_PROTECTED가 설정된 경우에만이 기능을 사용하고 싶습니다. 나는에게 Heroku의 구성 VAR과 같이 설정합니다

heroku config:set PASSWORD_PROTECTED=true 

다음처럼 보이도록 htaccess로 업데이트 :

<IfDefine %{ENV:PASSWORD_PROTECTED}> 
    AuthUserFile /app/prototypes/.htpasswd 
    AuthType Basic 
    AuthName "Restricted Access" 
    Require valid-user 
</IfDefine> 

그러나 유효 사용자가 실행 결코 극복 필요, 그래서 나는 일하지 않는 것 Heroku의 .htacess에서 ENV vars에 액세스 할 수 있거나 잘못하고 있습니다. 이 작업을 올바르게 수행하는 방법에 대한 의견이 있으십니까?

답변

2

올바른 길을 가고 있지만 구문이 약간 있습니다.

()이 아닌 the <If> directive을 사용해야합니다. 예 지상에 조금 얇은 그래서 이것은 아파치 2.4의 새로운했지만, 우리는이 가지고 올 this rather technical expression reference와 함께 그 예를 사용할 수 있습니다

<If "-T reqenv('PASSWORD_PROTECTED')"> 
    AuthUserFile /app/prototypes/.htpasswd 
    AuthType Basic 
    AuthName "Restricted Access" 
    Require valid-user 
</If> 

reqenv이 환경 변수를 조회하는 기능입니다; -T은 인수가 비어 있거나 0, "false", "off"또는 "no"가 아닌 경우 true를 반환하는 연산자입니다.