當 env 設定為特定值時不要使用 .htpasswd

當 env 設定為特定值時不要使用 .htpasswd

.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 啟動時是否在命令列上設定了參數。它無法檢查環境變數。

相關內容