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