Re: MP2 Redirection
Jamie Krasnoo wrote: What would be the best way to redirect in MP2? How would I set the Location in the header? not any different from mp1 (assuming that you have been working with mp1 before, but the mp1 documentation and literature can be used as a reference for most mp2 things). something like this? my $r = Apache-request; # docs say $r-header_out and family are now deceased. that's right. And $r-headers_out() is available in mp1 for several years and should be used in mp1 as well to easy the transition. $r-headers_out(Location = '/some/place.html'); return Apache::DECLINED; why DECLINED? just return Apache::OK. I'm also not sure why do you use Apache-request, I assume you are inside a handler, not a registry script. Since if you are inside a registry script you don't need to return anything at all. __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: MP2 Redirection
On Tue, 2003-07-22 at 02:50, Stas Bekman wrote: Jamie Krasnoo wrote: What would be the best way to redirect in MP2? How would I set the Location in the header? not any different from mp1 (assuming that you have been working with mp1 before, but the mp1 documentation and literature can be used as a reference for most mp2 things). something like this? my $r = Apache-request; # docs say $r-header_out and family are now deceased. that's right. And $r-headers_out() is available in mp1 for several years and should be used in mp1 as well to easy the transition. $r-headers_out(Location = '/some/place.html'); return Apache::DECLINED; why DECLINED? just return Apache::OK. My mistake, its been a while and I'm just getting back into it. So its like I'm learning everything all over again. You can use OK? The example in the Eagle book uses REDIRECT within a handler for redirection. So I'm assuming it goes the same for MP2. I'm also not sure why do you use Apache-request, I assume you are inside a handler, not a registry script. Since if you are inside a registry script you don't need to return anything at all. I was using Apache-request as an example. I guess it's a poor one. I should have just used 'my $r = shift;' to get the point across. Jamie Krasnoo
Re: MP2 Redirection
On Tue, 2003-07-22 at 03:10, Jamie Krasnoo wrote: On Tue, 2003-07-22 at 02:50, Stas Bekman wrote: Jamie Krasnoo wrote: What would be the best way to redirect in MP2? How would I set the Location in the header? not any different from mp1 (assuming that you have been working with mp1 before, but the mp1 documentation and literature can be used as a reference for most mp2 things). something like this? my $r = Apache-request; # docs say $r-header_out and family are now deceased. that's right. And $r-headers_out() is available in mp1 for several years and should be used in mp1 as well to easy the transition. $r-headers_out(Location = '/some/place.html'); return Apache::DECLINED; why DECLINED? just return Apache::OK. My mistake, its been a while and I'm just getting back into it. So its like I'm learning everything all over again. You can use OK? The example in the Eagle book uses REDIRECT within a handler for redirection. So I'm assuming it goes the same for MP2. I'm also not sure why do you use Apache-request, I assume you are inside a handler, not a registry script. Since if you are inside a registry script you don't need to return anything at all. I was using Apache-request as an example. I guess it's a poor one. I should have just used 'my $r = shift;' to get the point across. I got the redirection to work. However I don't think its working as it should. Nowhere in the docs does it say that you have to load APR::Table with Apache::RequestRec and Apache::RequestIO to have $r-headers_out() to work. Without APR::Table loaded I get the error: [Tue Jul 22 03:56:35 2003] [error] [client 192.168.0.2] Can't locate object method STORE via package APR::Table at /www/web/perl/MyApache/Redirect.pm line 17. Place APR::Table in and the error goes away. Here's a sample script below. Jamie Krasnoo package MyApache::Redirect; use strict; use warnings; use Apache::RequestRec; use Apache::RequestIO; # comment out 'use APR::Table;' to get error, uncomment to make it go # away. # use APR::Table; use Apache::Const -compile = qw(REDIRECT); sub handler { my $r = shift; $r-content_type('text/html'); $r-headers_out-{Location} = 'http://www.yahoo.com/'; return Apache::REDIRECT; } 1;
Re: MP2 Redirection
Jamie Krasnoo wrote: [...] $r-headers_out(Location = '/some/place.html'); return Apache::DECLINED; why DECLINED? just return Apache::OK. My mistake, its been a while and I'm just getting back into it. So its like I'm learning everything all over again. You can use OK? The example in the Eagle book uses REDIRECT within a handler for redirection. So I'm assuming it goes the same for MP2. You are right, one returns OK if using parsed headers, as in this example: sub handler { my $r = shift; my $location = $r-args; print Location: $location\n\n; Apache::OK; } I got the redirection to work. However I don't think its working as it should. Nowhere in the docs does it say that you have to load APR::Table with Apache::RequestRec and Apache::RequestIO to have $r-headers_out() to work. Without APR::Table loaded I get the error: [Tue Jul 22 03:56:35 2003] [error] [client 192.168.0.2] Can't locate object method STORE via package APR::Table at /www/web/perl/MyApache/Redirect.pm line 17. $r-headers_out returns a tied hash reference, so ones needs to load APR::Table in order to work with this reference. Doc patches are very welcome. __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
MP2 Redirection
What would be the best way to redirect in MP2? How would I set the Location in the header? something like this? my $r = Apache-request; # docs say $r-header_out and family are now deceased. $r-headers_out(Location = '/some/place.html'); return Apache::DECLINED; Jamie Krasnoo