Não use .htpasswd quando env configurado para um valor específico

1

Eu tenho .htpasswd protection no meu site que funciona bem. Quando eu chamo um script que coloca tudo em cache via PHP CLI, recebo um erro 401. O problema aqui é o .htpasswd protection .

Na chamada CLI, eu defino meu env ( ENV=cron ), como eu posso dizer ao meu .htaccess para não pedir o nome de usuário e senha se env=cron ?

Meu código atual no .htaccess é:

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

Estou usando o apache 2.2 e não o 2.4, o que facilitaria muito isso. Qual é a maneira correta de resolver esse problema?

    
por Fabian 03.09.2018 / 09:39

1 resposta

0

No Apache 2.2, você pode fazer isso com a ajuda da diretiva Satisfy .

Por exemplo:

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

(o padrão é Satisfy All )

A diretiva <IfDefine> (no Apache 2.2) só é capaz de verificar se os parâmetros foram definidos na linha de comando quando o Apache é iniciado. Não é possível verificar variáveis de ambiente.

    
por 03.09.2018 / 15:43