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