Назад | Перейти на главную страницу

Не используйте .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, что упростит задачу. Как правильно решить эту проблему?

В 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. Он не может проверять переменные среды.