Syntax von setenv
Lippert
- webserver
0 dedlfix
Hallo,
in der Doku von Apache/Org habe ich gefunden
Description: Sets environment variables
Syntax: SetEnv env-variable value
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
Status: Base
Module: mod_env
Sets an environment variable, which is then passed on to CGI scripts and SSI pages.
Example
SetEnv SPECIAL_PATH /foo/bin
Unter 'value' habe ich bisher verstanden num. Variablen o h n e und alphan. Variablen m i t Begrenzern.
Aus dem angegebenen Beispiel geht aber hervor, dass keine Stringbegrenzer nötig (erlaubt) sind.
Also
SetEnv NUMWERT 6
SetEnv ALPHAWERT abcd*f
Letzteres funktioniert allerdings nicht, wenn der String Leerzeichen enthält.
SetEnv TEXT abc def <= nicht akzeptiert
Also müssen in diesem Falle doch String-Begrenzer angegeben werden.
Ist es dann sinnvoll, generell bei nichtnum. Feldern die Begrenzer anzugeben?
Danke
Lippert
Hi!
Unter 'value' habe ich bisher verstanden num. Variablen o h n e und alphan. Variablen m i t Begrenzern.
Werte, nicht Variablen. Aber deine Faustregel ist nicht überall gültig. Die Syntax der Apache-Direktive ist auch ohne Begrenzungszeichen eindeutig. Pro Anweisung eine Zeile, der dritte Teil ist der Wert, danach kommt nichts mehr (außer dem Zeilenumbruch). Begrenzungszeichen brauch man nur, wenn Anfang und Ende sonst nicht eindeutig ermittelt werden können.
SetEnv TEXT abc def <= nicht akzeptiert
Also müssen in diesem Falle doch String-Begrenzer angegeben werden.
Das ist dann eine Ausnahme. Vermutlich kann die Direktive nichts dafür, weil der Konfigurationsparser vom Apachen möglicherweise am Leerzeichen schneidet, außer bei Einrahmungen.
Ist es dann sinnvoll, generell bei nichtnum. Feldern die Begrenzer anzugeben?
Warum? Wenns ohne auch geht, kann man es weglassen. Nur aus Prinzip würde ich etwas nicht machen. Allerdings kannst du es gern so handhaben, es generell einzurahmen, so dass du dir im Falle von Leerzeichen keine Ausnahme merken musst.
Lo!