diff --git a/src/middleware/user.js b/src/middleware/user.js index 32f0cc6955..061b791feb 100644 --- a/src/middleware/user.js +++ b/src/middleware/user.js @@ -194,9 +194,8 @@ module.exports = function (middleware) { if (!userslug) { return next(); } - const path = req.path.replace(/^\/api/, '') - .replace('uid', 'user') - .replace(uid, () => userslug); + const path = req.url.replace(/^\/api/, '') + .replace(`/uid/${uid}`, () => `/user/${userslug}`); controllers.helpers.redirect(res, path); }); diff --git a/test/controllers.js b/test/controllers.js index 2c3bc80f43..02157321ff 100644 --- a/test/controllers.js +++ b/test/controllers.js @@ -1050,6 +1050,16 @@ describe('Controllers', () => { }); }); + it('should redirect to userslug and keep query params', (done) => { + request(`${nconf.get('url')}/api/uid/${fooUid}/topics?foo=bar`, { json: true }, (err, res, body) => { + assert.ifError(err); + assert.equal(res.statusCode, 200); + assert.equal(res.headers['x-redirect'], '/user/foo/topics?foo=bar'); + assert.equal(body, '/user/foo/topics?foo=bar'); + done(); + }); + }); + it('should 404 if user does not exist', (done) => { request(`${nconf.get('url')}/api/uid/123123`, { json: true }, (err, res) => { assert.ifError(err);