说明:
如果使用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; ...... }
这个问题从来没人如此细的分析过。感谢了。 😛