У меня на сайте есть .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. Она не может проверять переменные окружения.