CGI newb... redirect page

Sean Berry sean_berry at cox.net
Thu May 27 17:31:11 EDT 2004


"Phil Frost" <indigo at bitglue.com> wrote in message
news:mailman.377.1085690181.6949.python-list at python.org...
> 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.
>


Thanks very much for your response.

The reason that I am using a script is because I tried the line:

ErrorDocument 404 not-found.shtml ... and ...
ErrorDocument 404 /not-found.shtml

There is a not-found.shtml file in each domains home web directory.

This, however, did not work.  It reverted to the generic version of
a 404 error page.

I figured that it was trying to look in the apache root directory for the
file, not the root of the domains web directory.

So, using this script, it will forward the user to the correct
not-found.shtml
page.

I tried looking through the apache docs, but did not see anything limiting
what type of alternate could be used.

Anything you can think of that I may be overlooking?

Thanks for your response.





More information about the Python-list mailing list