val apache_option = fn (EVar "execCGI", _) => SOME "ExecCGI"
| (EVar "includesNOEXEC", _) => SOME "IncludesNOEXEC"
| (EVar "indexes", _) => SOME "Indexes"
+ | (EVar "followSymLinks", _) => SOME "FollowSymLinks"
| _ => NONE
val autoindex_width = fn (EVar "autofit", _) => SOME "*"
"/",
vhostId]
+fun realLogDir {user, node, vhostId} =
+ String.concat [Config.Apache.realLogDirOf user,
+ "/",
+ node,
+ "/",
+ vhostId]
+
val () = Slave.registerFileHandler (fn fs =>
let
val spl = OS.Path.splitDirFile (#file fs)
val () = Env.action_two "errorDocument"
("code", Env.string, "handler", Env.string)
(fn (code, handler) =>
- (write "\tErrorDocument\t";
- write code;
- write " ";
- write handler;
- write "\n"))
+ let
+ val hasSpaces = CharVector.exists Char.isSpace handler
+ fun maybeQuote () =
+ if hasSpaces then
+ write "\""
+ else
+ ()
+ in
+ write "\tErrorDocument\t";
+ write code;
+ write " ";
+ maybeQuote ();
+ write handler;
+ maybeQuote ();
+ write "\n"
+ end)
+
val () = Env.action_one "options"
("options", Env.list apache_option)
(fn opts =>