![Die Konfigurationsdatei von lighttpd kann die bedingten Konfigurationen $HTTP["url"] nicht analysieren, obwohl andere funktionieren](https://rvso.com/image/657294/Die%20Konfigurationsdatei%20von%20lighttpd%20kann%20die%20bedingten%20Konfigurationen%20%24HTTP%5B%22url%22%5D%20nicht%20analysieren%2C%20obwohl%20andere%20funktionieren.png)
Ich versuche, MIME-Typen für Dateien in einem bestimmten Pfad auf meinem Server festzulegen, auf dem Lighttpd Version 1.4.31 mit SSL ausgeführt wird.
Ich folge dieser Konfigurationsdokumentation:http://redmine.lighttpd.net/projects/1/wiki/docs_configuration
Die Angabe $PHYSICAL["path"]
ist erst ab Lighttpd Version 1.5.0 möglich, deshalb versuche ich, anzugeben $HTTP["url"]
.
Ich habe beides probiert
$HTTP["url"] == '/my_path/directory_to_affect/foo.html' {
# my settings are in here
}
Und
$HTTP["url"] =~ '/my_path/directory_to_affect/*' {
# my settings are in here
}
Wenn ich meine Konfigurationsdatei mit lighttpd -D -f lighttpd.conf
lighttpd teste oder versuche, es neu zu starten, erhalte ich diesen Fehler:
2015-04-29 14:37:52: (configfile.c.892) source: /etc/lighttpd/lighttpd.conf line: 48 pos: 12 invalid character in variable name
2015-04-29 14:37:52: (configfile.c.948) configfile parser failed at: ==
Oder derselbe Fehler, aber mit der Meldung =~
statt ==
.
Was mich verwirrt, ist, dass es bereits andere bedingte Konfigurationen gibt, z. B. where $SERVER["socket"] == ":80"
, und diese Konfigurationen funktionieren einwandfrei.
Antwort1
Entsprechend derlighttpd-Dokumente zur Konfigurationsdateisyntax, nur doppelte Anführungszeichen "
, nicht '
werden unterstützt.
Ihre Beobachtung, dass $SERVER["socket"] == ":80"
es funktioniert, aber $HTTP["url"] == '/my_path/'
nicht ist, bestätigt dies.