env가 특정 값으로 설정된 경우 .htpasswd를 사용하지 마세요.

env가 특정 값으로 설정된 경우 .htpasswd를 사용하지 마세요.

.htpasswd내 사이트에는 제대로 작동하는 보호 기능이 있습니다 . PHP CLI를 통해 모든 것을 캐시에 저장하는 스크립트를 호출하면 401 오류가 발생합니다. 여기서 문제는 .htpasswd protection.

CLI 호출에서 env( )를 정의합니다 . 다음과 같은 경우 사용자 이름과 비밀번호를 묻지 않도록 ENV=cron어떻게 알 수 있습니까 ?.htaccessenv=cron

내 현재 코드는 다음과 .htaccess같습니다.

<IfDefine env!=cron>
    AuthType Basic
    AuthName "internal"
    AuthUserFile /path/to/my/.htpasswd
    Require valid-user
</IfDefine>

나는 2.4가 아닌 Apache 2.2를 사용하고 있으므로 이 작업이 훨씬 쉬워집니다. 이 문제를 해결하는 올바른 방법은 무엇입니까?

답변1

Apache 2.2에서는 지시문을 사용하여 이 작업을 수행할 수 있습니다 Satisfy.

예를 들어:

AuthType Basic
AuthName "internal"
AuthUserFile /path/to/my/.htpasswd
Require valid-user
Order allow,deny
Allow from env=cron
Satisfy Any

(기본값은 Satisfy All)

Apache 2.2의 지시문 <IfDefine>은 Apache가 시작될 때 명령줄에 매개변수가 설정되었는지 여부만 확인할 수 있습니다. 환경 변수를 확인할 수 없습니다.

관련 정보