FastCGI returning "No Input File" instead of 404

Igor Sysoev is at rambler-co.ru
Fri May 22 14:08:41 MSD 2009


On Fri, May 22, 2009 at 04:31:08PM +0700, Edho P Arief wrote:

> 2009/5/22 Igor Sysoev <is at rambler-co.ru>:
> > On Fri, May 22, 2009 at 08:23:36AM +0700, Edho P Arief wrote:
> >
> >> 2009/5/22 Igor Sysoev <is at rambler-co.ru>:
> >> > On Thu, May 21, 2009 at 12:25:09PM -0400, APseudoUtopia wrote:
> >> >
> >> >> Hey everyone,
> >> >>
> >> >> This seems like it would be easily solved, but I'm not sure how. I
> >> >> just finished setting up PHP on my system. It runs fine. However, when
> >> >> I browse to a page like
> >> >> "http://domain.com/this-php-script-does-not-exist.php" it returns "No
> >> >> input file specified" instead of a normal nginx 404 error. I'm trying
> >> >> to get it to display a normal 404 error instead. I've tried toggling
> >> >> the fastcgi_intercept_errors, which seems like it would fix the
> >> >> problem, however it didn't work.
> >> >>
> >> >> I'm running nginx stable, 0.6.37.
> >> >>
> >> >> It seems that try_files would work somehow, but my understanding is
> >> >> that try_files does not exist in 0.6.37?
> >> >
> >> > try_files exists in 0.6.36+.
> >> > You may try this also:
> >> >
> >> >  location ~ .*\.php$ {
> >> >        try_files  $uri  /404.html;
> >> >
> >> >        fastcgi_pass 127.0.0.1:9000;
> >> >        ...
> >> >
> >>
> >> thanks. is there a way to return default 404?
> >
> > Why do you want to return default 404 at all ? The default error
> > pages are last resort and should be customized on a good site.
> >
> >> Or is this the correct way?
> >
> > You may use "if" or example below:
> >
> >> location ~ \.php${
> >> try_files  $uri @404;
> >> ...
> >> }
> >> ...
> >> location @404 { return 404; break; }
> >
> > You do not need "break" after "return", because "return" breaks execution
> > by itself.
> >
> 
> I suspected it isn't needed.
> The reason would be to use whatever error_page that's located in
> server block so I only need to specify it once. (it works, right?)

server {
    error_page  404 = /404.html;

    location = /404.html {
    }

    location ~ \.php${
        try_files $uri /404.html;

        fastcgi_pass  ...
    }

-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list