http redirecor mit BaseHTTPRequestHandler
Verfasst: Dienstag 24. Juni 2008, 16:55
Ich brauchte mal eben schnell einen einfachen Redirector um die alte PyLucid trac Adresse (pylucid.net:8080) auf die neue (trac.pylucid.net) umzuleiten. Da die alte trac Version per tracd auf Port 8080 läuft und ich nicht so einfach einen Apache Server auf diesen Port einrichten kann, kommt ein Redirect per html/.htaccess in diesem Falle nicht in Frage...
Also ein bischen Python code:
Also ein bischen Python code:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import BaseHTTPServer
# Port auf dem der Server anfragen entgegen nehmen soll.
PORT = 8080
REDIRECT_DOMAIN = "http://DOMAIN.TLD"
LOG_FILE = "redirecor.log"
try:
f = file(LOG_FILE, "a")
sys.stderr = f
except Exception, e:
sys.stderr("Can't redirect stderr into '%s': %s" % (LOG_FILE, e))
class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_GET(self):
new_location = REDIRECT_DOMAIN + self.path
self.send_response(301) # Moved Permanently
self.send_header("Location", new_location)
self.end_headers()
self.log_message("redirect to: '%s'", new_location)
sys.stderr.flush() # In Log Datei schreiben
httpd = BaseHTTPServer.HTTPServer(("", PORT), MyHandler)
httpd.serve_forever()