diff options
| author | Alon Levy <alon@pobox.com> | 2015-01-29 15:33:51 +0200 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2015-01-29 15:33:51 +0200 |
| commit | 17904819f84061c1c39cc24b2a62117d7177f685 (patch) | |
| tree | 5424fb75084f2ac255e5ad1f0bd986be726c076e /src | |
| parent | cb3ace33ac5cac97dd887f98297bfddfed383911 (diff) | |
server: prevent infinite redirect (client stops at some point) on scheme://{host!=SERVER_NAME}/
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/rz_server.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/rz_server.py b/src/server/rz_server.py index 4b641213..2cd94da9 100644 --- a/src/server/rz_server.py +++ b/src/server/rz_server.py @@ -225,7 +225,13 @@ def init_rest_interface(cfg, flask_webapp): def page_not_found(e): # FIXME: template for 404 which redirects (html, not http) log.debug("failed redirection: request = %s" % request) - return redirect('/') + if request.path == '/': + # oops, 500 is the correct thing here - we cannot redirect to '/', will loop + # instead use what we know is a correct URL - possibly taking the user to another + # site (depends on how it routes SERVER_NAME + return redirect(request.url.split('://', 1)[0] + "://" + cfg.SERVER_NAME + '/') + else: + return redirect('/') def init_webapp(cfg, kernel, db_ctl=None): |
