diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c index 8b0e3a110c5ce9f61f29378553093ef9eda191f6..e3c33baae4871ad21965dd8078203e2d2483bf91 100644 --- a/src/sbbs3/websrvr.c +++ b/src/sbbs3/websrvr.c @@ -3279,7 +3279,8 @@ static enum get_fullpath get_fullpath(http_session_t * session) } else safe_snprintf(str,sizeof(str),"%s%s",root_dir,session->req.physical_path); - if(startup->file_vpath_prefix[0] && (vhost == false || startup->file_vpath_for_vhosts == true) + if(!(startup->options & WEB_OPT_NO_FILEBASE) + && startup->file_vpath_prefix[0] && (vhost == false || startup->file_vpath_for_vhosts == true) && strncmp(session->req.physical_path, startup->file_vpath_prefix, strlen(startup->file_vpath_prefix)) == 0) { session->parsed_vpath = resolve_vpath(session, session->req.physical_path); switch(session->parsed_vpath) { diff --git a/src/sbbs3/websrvr.h b/src/sbbs3/websrvr.h index 4073c0607be9ee57da160834afb005d48805d792..d2554262a2ad76bf122a8c792b382b19e6113906 100644 --- a/src/sbbs3/websrvr.h +++ b/src/sbbs3/websrvr.h @@ -88,6 +88,7 @@ static struct init_field web_init_fields[] = { #define WEB_OPT_ALLOW_TLS (1<<7) /* Enable HTTPS support */ #define WEB_OPT_HSTS_SAFE (1<<8) /* All URLs can be served over HTTPS*/ #define WEB_OPT_NO_HTTP (1<<9) /* Disable HTTP support */ +#define WEB_OPT_NO_FILEBASE (1<<10) /* Disable FileBase support */ /* web_startup_t.options bits that require re-init/recycle when changed */ #define WEB_INIT_OPTS (WEB_OPT_HTTP_LOGGING) @@ -104,6 +105,7 @@ static ini_bitdesc_t web_options[] = { { WEB_OPT_HTTP_LOGGING ,"HTTP_LOGGING" }, { WEB_OPT_ALLOW_TLS ,"ALLOW_TLS" }, { WEB_OPT_HSTS_SAFE ,"HSTS_SAFE" }, + { WEB_OPT_NO_FILEBASE ,"NO_FILEBASE" }, /* shared bits */ { BBS_OPT_NO_HOST_LOOKUP ,"NO_HOST_LOOKUP" },