diff --git a/src/daemon/group.js b/src/daemon/group.js index d2d60d9d..6bf40a5f 100644 --- a/src/daemon/group.js +++ b/src/daemon/group.js @@ -322,12 +322,17 @@ class Group extends EventEmitter { redirect(req, res) { const { id } = req.params const { item } = req.hotel + let target = item.target; + let path = req.params[0] || '' + + + target = (target.endsWith('/') ? '' : '/') + path; // Make sure to send only one response const send = once(() => { - log(`Redirect - ${id} → ${item.target}`) - res.redirect(item.target) - }) + log(`Redirect - ${id} → ${target}`); + res.redirect(307, target); + }); if (item.start) { // Set target diff --git a/src/daemon/routers/index.js b/src/daemon/routers/index.js index 90753c76..615d221f 100644 --- a/src/daemon/routers/index.js +++ b/src/daemon/routers/index.js @@ -16,8 +16,8 @@ module.exports = function(group) { router .get('/proxy.pac', pac) - .get( - '/:id', + .all( + '/:id/*', group.exists.bind(group), group.start.bind(group), group.redirect.bind(group)