From 17904819f84061c1c39cc24b2a62117d7177f685 Mon Sep 17 00:00:00 2001 From: Alon Levy Date: Thu, 29 Jan 2015 15:33:51 +0200 Subject: server: prevent infinite redirect (client stops at some point) on scheme://{host!=SERVER_NAME}/ --- src/server/rz_server.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/server') 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): -- cgit v1.3.1