Die Konfigurationsdatei von lighttpd kann die bedingten Konfigurationen $HTTP["url"] nicht analysieren, obwohl andere funktionieren

Die Konfigurationsdatei von lighttpd kann die bedingten Konfigurationen $HTTP["url"] nicht analysieren, obwohl andere funktionieren

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.conflighttpd 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.

verwandte Informationen