Не используйте.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. Он не может проверить переменные среды.

Другие вопросы по тегам