
私のサイトには正常に機能する保護機能があります.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.4 ではなく 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 の起動時にコマンド ラインでパラメータが設定されているかどうかのみをチェックできます。環境変数をチェックすることはできません。