From 15d4a588d800eb906280145f79f3c9827386aa18 Mon Sep 17 00:00:00 2001 From: Krateng Date: Wed, 3 Apr 2019 18:03:55 +0200 Subject: [PATCH] Custom HTTP error pages --- server.py | 29 ++++++++++++++++++++++++++++- website/common/header.html | 4 ++-- website/errors/generic.html | 27 +++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 website/errors/generic.html diff --git a/server.py b/server.py index 1ab04b5..e64ee23 100755 --- a/server.py +++ b/server.py @@ -39,6 +39,33 @@ def mainpage(): response = static_html("start") return response +@webserver.error(400) +@webserver.error(403) +@webserver.error(404) +@webserver.error(405) +@webserver.error(408) +@webserver.error(500) +@webserver.error(505) +def customerror(error): + code = int(str(error).split(",")[0][1:]) + log("Error: " + str(code),module="error") + + if os.path.exists("website/errors/" + str(code) + ".html"): + return static_file("website/errors/" + str(code) + ".html",root="") + else: + with open("website/errors/generic.html") as htmlfile: + html = htmlfile.read() + + # apply global substitutions + with open("website/common/footer.html") as footerfile: + footerhtml = footerfile.read() + with open("website/common/header.html") as headerfile: + headerhtml = headerfile.read() + html = html.replace("",footerhtml + "").replace("",headerhtml + "") + + html = html.replace("ERROR_CODE",str(code)) + return html + # this is the fallback option. If you run this service behind a reverse proxy, it is recommended to rewrite /db/ requests to the port of the db server # e.g. location /db { rewrite ^/db(.*)$ $1 break; proxy_pass http://yoururl:12349; } @@ -89,7 +116,7 @@ def dynamic_image(): relevant, _, _, _ = KeySplit(keys) result = resolveImage(**relevant) if result == "": return "" - redirect(result,301) + redirect(result,307) @webserver.route("/images/") @webserver.route("/images/") diff --git a/website/common/header.html b/website/common/header.html index ce572c1..f30b809 100644 --- a/website/common/header.html +++ b/website/common/header.html @@ -1,3 +1,3 @@ - - + + diff --git a/website/errors/generic.html b/website/errors/generic.html new file mode 100644 index 0000000..5ade08e --- /dev/null +++ b/website/errors/generic.html @@ -0,0 +1,27 @@ + + + + + + Maloja - Error ERROR_CODE + + + + + + + + +
+
+
+

Error ERROR_CODE


+ + +

That did not work. Don't ask me why.

+
+ + + + +