Search code examples
apachemod-perl2mason

Why $r->print in mason handler print standart page?


When I do in HTML::Mason::ApacheHandler

sub handler {
    my ($r) = @_;

    $r->content_type('text/plain');
    $r->print( 'YES' );

    $r->log_error( $r->bytes_sent );

    return 200;
}

I get page:

OK

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Apache/2.2.22 (Debian) Server at localhost Port 443

How to just print 'YES' to the browser?


Solution

  • I must add use Apache2::RequestIO; to my handler.pl

    And I must be more attentive and check /var/log/apache2/error.log when something is going wrong.

    To use custom page for response I can use custom_response

    sub handler {
      my ($r)=@_;
      @{$r->pnotes}{qw/etext ect/}=("sorry, no access\n", 'text/plain; charset=my-characters');
      $r->custom_response( 403, "/-/error" );
      return 403;
    }
    

    Full example here