FastCGI returning "No Input File" instead of 404

Igor Sysoev is at rambler-co.ru
Fri May 22 11:21:20 MSD 2009


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.


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





More information about the nginx mailing list