No utilice .htpasswd cuando env esté configurado en un valor específico

No utilice .htpasswd cuando env esté configurado en un valor específico

Tengo .htpasswdprotección en mi sitio que funciona bien. Cuando llamo a un script que pone todo en caché a través de PHP CLI, aparece un error 401. El problema aquí es el .htpasswd protection.

En la llamada CLI defino mi env( ENV=cron), ¿cómo puedo decirle .htaccessque no solicite el nombre de usuario y la contraseña si env=cron?

Mi código actual en el .htaccesses:

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

Estoy usando Apache 2.2 y no 2.4, lo que haría esto mucho más fácil. ¿Cuál es la forma correcta de resolver este problema?

Respuesta1

En Apache 2.2 es posible que puedas hacer esto con la ayuda de la Satisfydirectiva.

Por ejemplo:

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

(El valor predeterminado es Satisfy All)

La <IfDefine>directiva (en Apache 2.2) solo puede verificar si los parámetros se han configurado en la línea de comando cuando se inicia Apache. No puede verificar las variables de entorno.

información relacionada