From d0034deebc5dc1fc5a54d1e99fe917f9ffbe7d69 Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Mon, 2 Sep 2013 03:19:03 +0200 Subject: [PATCH] Made redirections a bit more flexible. --- wrw/resp.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/wrw/resp.py b/wrw/resp.py index 50ac6b1..fbb056f 100644 --- a/wrw/resp.py +++ b/wrw/resp.py @@ -62,14 +62,20 @@ class notfound(httperror): return super(notfound, self).__init__(404) class redirect(dispatch.restart): - def __init__(self, url, status = 303): + bases = {"url": proto.requrl, + "script": proto.scripturl, + "site": proto.siteurl} + + def __init__(self, url, status = 303, base = "url"): super(redirect, self).__init__() self.url = url self.status = status + self.bases[base] + self.base = base def handle(self, req): req.status(self.status, "Redirect") - req.ohead["Location"] = proto.appendurl(proto.requrl(req), self.url) + req.ohead["Location"] = proto.appendurl(self.bases[self.base](req), self.url) req.ohead["Content-Length"] = 0 return [] -- 2.11.0