nginx指定404 No input file specified

说明:
如果使用nginx服务器,默认情况下访问非php程序文件(比如html、jpg文件等),均会显示:404 Not Found。而访问不存在的PHP页面则会显示:No input file specified

解决404 Not Found
解决前面一个问题比较简单,只要在对应网站的配置文件(server区域)中加入语句指定404错误显示的页面
在server中添加error_page 404 = /404.html;当然也可以指定别的页面。

server
{
    ......
    error_page  404  /404.html;
    ......
}

这样做后,你访问非php程序文件(比如html、jpg文件等)会自己跳转到404.html页面,如果访问不存在的PHP页面仍会显示:No input file specified。这时就需要参照下面的步骤,在http区域添加fastcgi_intercept_errors on

解决No input file specified
因为PHP页面比较特殊,无论它是否存在,nginx都会先交给fastcgi处理,而fastcgi处理完成后直接显示No input file specified,没有将错误结果交回给nginx。那么解决这个问题就简单了,只需要让fastcgi将不存在的PHP程序文件交回给nginx即可。
找到nginx.conf文件,将fastcgi_intercept_errors on加入到合适位置(默认fastcgi_intercept_errors off),reload一下nginx即可生效

http
{
      ......
      fastcgi_intercept_errors on;
      ......
}

“nginx指定404 No input file specified”的一个回复

发表评论

邮箱地址不会被公开。 必填项已用*标注