Ich habe .htpasswd
einen Schutz auf meiner Site, der gut funktioniert. Wenn ich über PHP CLI ein Skript aufrufe, das alles in den Cache legt, erhalte ich einen 401-Fehler. Das Problem hier ist das .htpasswd protection
.
Im CLI-Aufruf definiere ich meine Umgebung ( ENV=cron
). Wie kann ich meinem Benutzer mitteilen, .htaccess
dass er in diesem Fall nicht nach Benutzername und Passwort fragen soll env=cron
?
Mein aktueller Code darin .htaccess
ist:
<IfDefine env!=cron>
AuthType Basic
AuthName "internal"
AuthUserFile /path/to/my/.htpasswd
Require valid-user
</IfDefine>
Ich verwende Apache 2.2 und nicht 2.4, was das Ganze viel einfacher machen würde. Wie kann ich dieses Problem richtig lösen?
Antwort1
Unter Apache 2.2 können Sie dies möglicherweise mit Hilfe der Direktive tun Satisfy
.
Zum Beispiel:
AuthType Basic
AuthName "internal"
AuthUserFile /path/to/my/.htpasswd
Require valid-user
Order allow,deny
Allow from env=cron
Satisfy Any
(Der Standardwert ist Satisfy All
)
Die <IfDefine>
Direktive (unter Apache 2.2) kann nur prüfen, ob beim Start von Apache Parameter in der Kommandozeile gesetzt wurden. Umgebungsvariablen kann sie nicht prüfen.