Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: mod_perl give 404 not_found with content

by Khen1950fx (Canon)
on Apr 07, 2011 at 00:26 UTC ( [id://897913]=note: print w/replies, xml ) Need Help??


in reply to mod_perl give 404 not_found with content

You were close. I would try it like this with a double-check:
#!/usr/bin/perl use strict; use warnings; use ModPerl::Util; use ModPerl::Const -compile => 'EXIT'; eval { my $r; $r->status(0); ModPerl::Util::exit(0); }; warn "Oops, there seems to be an error\n"; exit if $@ && ref $@ == ModPerl::EXIT; warn "Still Running\n";

Replies are listed 'Best First'.
Re^2: mod_perl give 404 not_found with content
by ikegami (Patriarch) on Apr 07, 2011 at 05:55 UTC
    I find it hard to believe that sends a 404, much less a custom 404.
      Exactly.
      How do i print the actual document content?
        This works
        <Location /perl> SetHandler perl-script PerlResponseHandler ModPerl::Registry Options +ExecCGI PerlOptions +ParseHeaders PerlOptions +SetupEnv </Location> #!/usr/bin/perl -- use strict; use warnings; use CGI; use Data::Dumper; Main(@ARGV); exit(0); sub Main { my $cgi = CGI->new; print $cgi->header( -status => 404, -nph => 0, ); print $cgi->start_html, $cgi->b(rand time, ' ', scalar gmtime), print '<table border="1" width="%100"><tr><td>', $cgi->Dump, '</td><td><div style="white-space: pre-wrap; overflow: scroll;">', $cgi->escapeHTML( Dumper( $cgi ) ), '</div></td></tr></table>', CGI->new( \%ENV )->Dump; print $cgi->hr; print $cgi->end_form, $cgi->end_html; }
        This works
        PerlModule Apache2::Hello404 <Location /hello404> SetHandler perl-script PerlResponseHandler Apache2::Hello404 </Location> package Apache2::Hello404; use Apache2::RequestRec; use Apache2::RequestIO; use Apache2::Const -compile => qw(OK NOT_FOUND); sub handler { my $r = shift; my $package = __PACKAGE__; my $req = Apache2::Request->new($r); my $val = $req->param('key') || ''; my $msg = $val ? qq{You passed in a value of "$val" for "key"} : 'No "key" parameter was passed '; my $time = scalar localtime; $r->status(Apache2::Const::NOT_FOUND); $r->content_type('text/html'); $r->print(<<"END"); <html> <head><title>$package handler</title></head> <body> Hello from $package. It is $time.<br /> $msg </body> </html> END return Apache2::Const::OK; } 1;
        Using $r->status() is key

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://897913]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2024-04-19 02:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found