Monday, March 28, 2011 at 10:00 PM.
system.verbs.builtins.webserver.redirect
on redirect (pta, url, flpermanent=false) {
<<Changes
<<3/28/11; 9:54:39 PM by DW
<<if pta^.responseHeaders doesn't exist, create it.
<<11/23/10; 6:27:01 PM by DW
<<Add optional parameter, flpermanent, default false. If true, we redirect with a 301, telling the caller that the old URL is obsolete.
<<6/22/09; 4:29:17 PM by DW
<<Created. This code was appearing in too many places not to factor it.
if flpermanent {
pta^.code = 301;
pta^.responseBody = webserver.util.buildErrorPage ("302 MOVED", "It moved permanently.")}
else {
pta^.code = 302; //default, non-permanent redirect
pta^.responseBody = webserver.util.buildErrorPage ("302 FOUND", "Found the page.")};
if not defined (pta^.responseHeaders) { //3/28/11 by DW
new (tabletype, @pta^.responseHeaders)};
pta^.responseHeaders.location = url;
pta^.responseHeaders.URI = url}
<<bundle //test code
<<local (pta = @scratchpad.pt)
<<new (tabletype, pta)
<<new (tabletype, @pta^.responseHeaders)
<<redirect (pta, "http://scripting.com/")
<<edit (pta)
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.