Не используйте .htpasswd, если env установлен на определенное значение

Не используйте .htpasswd, если env установлен на определенное значение

У меня на сайте есть .htpasswdзащита, которая отлично работает. Когда я вызываю скрипт, который помещает все в кэш через PHP CLI, я получаю ошибку 401. Проблема здесь в .htpasswd protection.

В вызове CLI я определяю свой env( ENV=cron), как мне сказать ему .htaccessне запрашивать имя пользователя и пароль, если env=cron?

Мой текущий код .htaccess:

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

Я использую apache 2.2, а не 2.4, что значительно упростило бы задачу. Каков правильный способ решения этой проблемы?

решение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)

Директива <IfDefine>(в Apache 2.2) способна только проверять, были ли заданы параметры в командной строке при запуске Apache. Она не может проверять переменные окружения.

Связанный контент