http redirecor mit BaseHTTPRequestHandler

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

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

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten