http redirecor mit BaseHTTPRequestHandler

Code-Stücke können hier veröffentlicht werden.
Antworten
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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:

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()

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Samstag 28. Juni 2008, 19:31

Ich starte das ganze mit "python redirector.py &"... Alles läuft so auch erstmal super... Nach einiger Zeit, funktioniert er allerdings nicht mehr. Per htop sehe ich allerdings, das der Prozess noch läuft...

Jemand einen tipp, woran das liegen könnte?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten