I’ve searched a lot for a solution of this simple looking problem. I found a lot of irritating and confusing information about this on the WWW. From implementing a socket-application to setting up an self-made HTTP-server. But the answer is much simpler:
#!/usr/bin/python # -*- coding: UTF-8 -*- # enable debugging import sys import cgitb import os.path cgitb.enable() if os.path.exists('maintenance.html'): try: templateFile = open('maintenance.html') print '''Status:503 Content-type: text/html; charset=utf-8 Retry-After: 300 ''' print templateFile.read() except IOError , e: print("({})".format(e)) except ValueError: print "Could not convert data to an integer." except: print "Unexpected error:", sys.exc_info()[0] raise
The empty line after the “Retry-After” Header is very important!