全国城市切换
高朋网络工作室stu.i371.cc
全国服务热线:182-0362-1390
新闻中心
联系我们

郑州高朋网络工作室

联系人:高先生

电 话:18203621390

邮 箱:mygjp@qq.com

技术文章

No input file specified解决方案

  使用伪静态相对来说,对搜索引擎比较友好,而我在服务器空间上启用REWRITE的伪静态功能的时候,首页可以访问,而访问内页的时候,就提示:“No input file specified.”。
百度搜索了一下,发现还有其它空间商也有此问题,原因在于空间所使用的PHP是fast_cgi模式,而在某些情况下, 不能正确识别path_info所造成的错误,就是Wordpress也有一样的问题,还好找到了解决方案!
我们首先来看一下Wordpress及Typecho等程序默认的.htaccess里面的规则:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

  而提示是说:“No input file specified.”,也就是说没有得到有效的文件路径。在Google中找到了解决方案,就是修改一下伪静态规则,如下:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

  在正则结果“$1”前面多加了一个“?”号,问题应该解决了。

  但没想到还是出现 No input file specified 因为项目用了URL route,估摸着可能是rewrite的问题。

  再次记录一下解决方案。

  1.检查doc_root 是否设置此值

  2.检查.htaccess文件 , 很多框架都是index.php当入口文件。

  默认的

  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

  规则在apache fastcgi模式下会导致No input file specified.

  修改成

  RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

  

  

  

  OK,URL正常重写,网址访问成功!

  还有一种可能,针对IIS服务器的:

  在php.ini文件里面修改:

  1、增加一行(这个最重要)

  fastcgi.impersonate = 1

  2、修改两项(解开注释)

  cgi.fix_pathinfo=1
cgi.force_redirect = 0

  对于Nginx服务器还需做如下修改:
在nginx/conf/nginx.conf 找到:

  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 改为:

  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

  重启服务器就可以了。

你觉得这篇文章怎么样?

00
付款方式
×