[Tutor] Redirect from a CGI script
Python
python at venix.com
Sat Jan 20 16:45:49 CET 2007
On Sat, 2007-01-20 at 15:22 +0000, Paulino wrote:
> Still doesn't work.
That's not terribly useful. What status did tamperdata report? What
did you see in the browser window? Did you get a 302 status?
Try (specify the right URL for your script)
telnet localhost 80
GET /cgi-bin/redirect.py
<enter>
What do you get? (Describe what happens.)
Let us know if you don't understand the telnet command.
>
> This should be a server issue, once I use a very basic server:
> 'from BaseHTTPServer import HTTPServer
> 'from CGIHTTPServer import CGIHTTPRequestHandler
> 'HTTPServer(("localhost", 80),CGIHTTPRequestHandler).serve_forever()
> I tryed also with the Karrigel embeded server and nothing happened...
>
> I tryed all the sugestions from Andre with no succes.
>
> The cgi script as only these two lines:
> 'print "Content-type: text/html\r\n"
> 'print "Location: http://python.org/\r\n\r"
>
> I have a Win Xp pro machine with Python2.5.
>
> Paulino
> > On Sat, 2007-01-20 at 02:10 +0000, Paulino wrote:
> >
> > > Thank you Andre,
> > >
> > > well it doesn't work either!
> > >
> >
> > This works,
> >
> > #!/usr/bin/python
> > print "Location: http://python.org/\r\n\r"
> >
> > as does this
> >
> > #!/usr/bin/python
> > print "Content-type: text/html\r"
> > print "Location: http://python.org/\r\n\r"
> >
> >
> > Tested using Apache on Linux. A redirect should have a 3xx status.
> > Apache saw the location header and fixed the status to be 302. My
> > browser (firefox) received the 302 status with the new location and
> > requested the new URL.
> >
> > Each header line should be separated by \r\n. A Python print on linux
> > will only output \n. In actual practice, that appears to work OK.
> > either the browsers tolerate the missing \r or Apache fixes the data
> > stream.
> >
> > Firefox plugins called tamperdata and liveheaders can be very helpful
> > for debugging these kinds of interactions.
> >
> > Get the redirect to a real web site working. Then fix it to redirect to
> > your script. Use tamperdata to see what is going on if you have trouble
> > making it work.
> >
> >
> > > Paulino
> > >
> > > > Andre Engels escreveu:
> > > > 2007/1/18, Paulino <paulino1_at_sapo.pt at .syntax-error>:
> > > > How can i redirect to another URL from a python CGI script.
> > > >
> > > > Is's suposed to be as simply as:
> > > >
> > > > print "Location : http://newurl "
> > > > It's not working.
> > > >
> > > > this simple code does't work - < redir.pyw>
> > > > 'print "Content-Type:text/html\n\n"
> > > > 'print "Location : /cgi-bin/ecodiv.pyw "
> > > > 'print
> > > >
> > > > I use CGIHTTPServer, the server script is as follows:
> > > >
> > > > 'from BaseHTTPServer import HTTPServer
> > > > 'from CGIHTTPServer import CGIHTTPRequestHandler
> > > > 'HTTPServer(("localhost", 80),
> > > > CGIHTTPRequestHandler).serve_forever()
> > > >
> > > > instead of redirecting, it only prints
> > > > 'Location : /cgi-bin/ecodiv.pyw' inthe
> > > > browser
> > > >
> > > >
> > > > I haven't tested it, but I think I had a similar error recently, and
> > > > that was solved by removing the \n\n at the end of the Content-Type
> > > > line. You could try that.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Andre Engels, andreengels at gmail.com
> > > > ICQ: 6260644 -- Skype: a_engels
> > > >
> > > _______________________________________________
> > > Tutor maillist - Tutor at python.org
> > > http://mail.python.org/mailman/listinfo/tutor
> > >
>
--
Lloyd Kvam
Venix Corp
More information about the Tutor
mailing list