Diffstat (limited to 'cgit.c')
| -rw-r--r-- | cgit.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -155,7 +155,9 @@ static void config_cb(const char *name, const char *value) else if (!strcmp(name, "strict-export")) ctx.cfg.strict_export = xstrdup(value); else if (!strcmp(name, "virtual-root")) { - ctx.cfg.virtual_root = ensure_end(value, '/'); + ctx.cfg.virtual_root = trim_end(value, '/'); + if (!ctx.cfg.virtual_root && (!strcmp(value, "/"))) + ctx.cfg.virtual_root = ""; } else if (!strcmp(name, "nocache")) ctx.cfg.nocache = atoi(value); else if (!strcmp(name, "noplainemail")) @@ -831,8 +833,11 @@ int main(int argc, const char **argv) * that virtual-root equals SCRIPT_NAME, minus any possibly * trailing slashes. */ - if (!ctx.cfg.virtual_root && ctx.cfg.script_name) - ctx.cfg.virtual_root = ensure_end(ctx.cfg.script_name, '/'); + if (!ctx.cfg.virtual_root && ctx.cfg.script_name) { + ctx.cfg.virtual_root = trim_end(ctx.cfg.script_name, '/'); + if (!ctx.cfg.virtual_root) + ctx.cfg.virtual_root = ""; + } /* If no url parameter is specified on the querystring, lets * use PATH_INFO as url. This allows cgit to work with virtual |