Daniel J. Popowich
dpopowich at mtrsd.k12.ma.us
Mon Dec 22 11:44:30 EST 2003
When I use req.internal_redirect(some_uri) sometimes the url in my browser gets rewritten to reflect some_uri and some times it doesn't, remaining as the uri of the originally selected page. This can cause numerous problems with relative links inside a page if the url is not rewritten in the browser. I'm trying to understand what causes this and how I can control it. Can someone point me to some doc? Below is a short handler I wrote as an example (the links I use assume you have the apache manual installed; modify if necessary). [modpython 3.1.2b, python 2.3.2, apache 2.0.40] Thanks, ------------------ Daniel Popowich Network Specialist ------------------------------------- Mohawk Trail Regional School District 24 Ashfield Rd. Shelburne Falls, MA 01370 413.625.0192 x22 ------------------------------------- # -*- python -*- from mod_python import apache, util def handler(req): req.content_type = 'text/html' form = util.FieldStorage(req) choice = form.getfirst('redirect') # this doesn't rewrite the url in the browser if choice == '1': req.internal_redirect('%s/abcdefg' % req.uri) # neither does this one [and the resulting page is quite # messed up because the relative urls inside the doc don't # make sense without the rewrite] elif choice == '2': req.internal_redirect('/manual/index.html') # but this one does elif choice == '3': req.internal_redirect('/manual') else: req.write(''' <html> <body> <a href=%s?redirect=1>redirect to %s/abcdefg</a><br> <a href=%s?redirect=2>redirect to /manual/index.html</a><br> <a href=%s?redirect=3>redirect to /manual</a><br> </body> </html> ''' % ((req.uri,)*4)) return apache.OK
|