diff --git a/r2/r2/config/routing.py b/r2/r2/config/routing.py index 8013478d1..bd0fa4a31 100644 --- a/r2/r2/config/routing.py +++ b/r2/r2/config/routing.py @@ -126,13 +126,15 @@ def make_map(): where='overview') mc('/user/:username/:where', controller='user', action='listing', where='overview') - mc('/u/:username', controller='redirect', action='user_redirect') mc('/user/:username/m/:multi', controller='hot', action='listing') mc('/user/:username/m/:multi/new', controller='new', action='listing') mc('/user/:username/m/:multi/:sort', controller='browse', sort='top', action='listing', requirements=dict(sort='top|controversial')) + mc('/u/:username', controller='redirect', action='user_redirect') + mc('/u/:username/*rest', controller='redirect', action='user_redirect') + # preserve timereddit URLs from 4/1/2012 mc('/t/:timereddit', controller='redirect', action='timereddit_redirect') mc('/t/:timereddit/*rest', controller='redirect', diff --git a/r2/r2/controllers/redirect.py b/r2/r2/controllers/redirect.py index d84173809..2cc7501b9 100644 --- a/r2/r2/controllers/redirect.py +++ b/r2/r2/controllers/redirect.py @@ -29,11 +29,14 @@ class RedirectController(BaseController): def GET_redirect(self, dest): return redirect_to(str(dest)) - def GET_user_redirect(self, username): + def GET_user_redirect(self, username, rest=None): user = chkuser(username) if not user: abort(400) - return redirect_to("/user/" + user, _code=301) + url = "/user/" + user + if rest: + url += "/" + rest + return redirect_to(str(url), _code=301) def GET_timereddit_redirect(self, timereddit, rest=None): tr_name = chksrname(timereddit)