> Hello, all.
>
> First, the problem:
> ________________________________________
> [Tue Jun 20 09:06:55 2000] [error] [client 90.17.209.65] Invalid error
> redirection directive: üØ@
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> üØ@? Let me assure you, "üØ@" isn't in my code anywhere. =o)
>
> I am, however, using a PerlPostReadRequestHandler that currently looks
> much like this:
> ________________________________________
>
> package Apache::PortCorrect;
>
> use strict;
> use Apache::Constants qw( :response :methods );
> use Carp ();
> $SIG{__WARN__} = \&Carp::cluck;
>
> sub handler {
>      my($r,$s,$url,$args,$uri,$subr);
>      $r = shift;   # the request object
>      return OK if 443 == $r->get_server_port;
>      (undef,$url,undef) = split(/\s+/o, $r->the_request);
>      return OK if $url =~ m{ ^(?:/ # doc root
>                        | /(list|of|ok|dirs)/.* # edited
>                        | /(page|list)[.]shtml  # ditto
>                        | .*[.](gif|jpg)
>                                )$
>                        }ixo;
>      $uri = "https://our.intranet.com" . $url; # again
>      $args = $r->args;
>      $uri .= "?$args" if $args;
>      $r->custom_response(MOVED,$uri);
>      return MOVED;
> }
>
> 1; # guarantee return code for load
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Am I confusing or crosswiring Apache by doing a cross-port custom
> response here?  It seems to work....
>
> Or is it something entirely different?

I don't think you can want custom_response here, it does an internal
redirect. You want to do an external redirect, so use
$r->header_out(location => ...)

--
Eric


Reply via email to