diff --git a/src/middleware/index.js b/src/middleware/index.js index ea22f285af..d42ef87436 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -59,6 +59,19 @@ middleware.ensureLoggedIn = (req, res, next) => { setImmediate(next); }; +middleware.ensureRelativePath = (req, res, next) => { + const prefix = nconf.get('relative_path'); + if (!prefix) { + return setImmediate(next); + } + + if (!req.path.startsWith(prefix)) { + return controllers.helpers.redirect(res, req.path); + } + + return next(); +}; + Object.assign(middleware, { admin: require('./admin'), ...require('./header'), diff --git a/src/webserver.js b/src/webserver.js index e75c59eb00..9dae76d496 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -138,6 +138,8 @@ function setupExpressApp(app) { app.use(compression()); } + app.use(middleware.ensureRelativePath); + app.get(`${relativePath}/ping`, pingController.ping); app.get(`${relativePath}/sping`, pingController.ping);