CGI newb... redirect page

Phil Frost indigo at bitglue.com
Thu May 27 16:36:16 EDT 2004


To do a redirect, you can simply do something such as:

print 'Location: http://new.absloute/url\r\n\r\n'
print '''
  This is some html that people will never see, but generally it should
  include a link to the target url'''
sys.exit()

Note that to be RFC compliant, you must give an absloute URL, although
relative ones work usually.

Furthermore, there is no reason you should have to write a script to do
redirects for error pages. See the documentation on apache.org:

http://httpd.apache.org/docs-2.0/mod/core.html#errordocument

You can have apache use any local file, or even redirect to another
server.

On Thu, May 27, 2004 at 11:36:17AM -0700, Sean Berry wrote:
> Hi there.  I am relativly new to Python CGI and need a question answered.
> 
> I have made custom 404 error pages and have them in various web directories.
> 
> I have not been able to figure out a way to have apache use a file not
> within it's own
> home directory, so I was going to have a .py file in cgi-bin forward the
> user on to the
> correct error page.
> 
> So I have say,
> /usr/www/client1/not-found.shtml
> and...
> /usr/www/client2/not-found.shtml
> 
> I found that cgi.print_environ() gave me the SERVER_NAME, which is what I
> want.
> But, this is part of a long html formatted string that cgi.print_environ()
> returns.
> 
> Is there something builtin to deal with these name, value pairs as a
> dictionary?
> I looked throught the docs, but did not see this functionality.
> 
> Also, when I do extract this info... how do I actually do a redirect to a
> certain page
> 
> Example.
> User goes to www.client1.com/page_not_on_server.html
> The apache conf file sends the redirect to /cgi-bin/redirect.py
> Redirect.py extracts the requesting server, client1.com, then
> redirects them to www.client1.com/not-found.shtml.
> 
> Thanks for your help.




More information about the Python-list mailing list