-rw-r--r-- | cgit.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -166,33 +166,35 @@ static void prepare_context(struct cgit_context *ctx) } static int cgit_prepare_cache(struct cacheitem *item) { if (!ctx.repo && ctx.qry.repo) { ctx.page.title = fmt("%s - %s", ctx.cfg.root_title, "Bad request"); cgit_print_http_headers(&ctx); cgit_print_docstart(&ctx); cgit_print_pageheader(&ctx); cgit_print_error(fmt("Unknown repo: %s", ctx.qry.repo)); cgit_print_docend(); return 0; } if (!ctx.repo) { - item->name = xstrdup(fmt("%s/index.html", ctx.cfg.cache_root)); + item->name = xstrdup(fmt("%s/index.%s.html", + ctx.cfg.cache_root, + cache_safe_filename(ctx.qry.raw))); item->ttl = ctx.cfg.cache_root_ttl; return 1; } if (!ctx.qry.page) { item->name = xstrdup(fmt("%s/%s/index.%s.html", ctx.cfg.cache_root, cache_safe_filename(ctx.repo->url), cache_safe_filename(ctx.qry.raw))); item->ttl = ctx.cfg.cache_repo_ttl; } else { item->name = xstrdup(fmt("%s/%s/%s/%s.html", ctx.cfg.cache_root, cache_safe_filename(ctx.repo->url), ctx.qry.page, cache_safe_filename(ctx.qry.raw))); if (ctx.qry.has_symref) item->ttl = ctx.cfg.cache_dynamic_ttl; |