报错原因:
“No input file specified.”,是没有得到有效的文件路径造成的。
解决方法一:
检查根目录(或者thinkphp的public目录)下是否有一个.user.ini文件,有则删掉,或注释里面的内容,如下图:
然后重启Apache服务器, 刷新页面,如果还是报错No input file specified.,请参考方法二。
解决方法二:
PHP5.6是fast_cgi模式,而在某些情况下,不能正确识别path_info,从而造成错误,默认的.htaccess里面的规则:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
我们只需要修改.htaccess里的伪静态规则,如下:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>
仅仅就是在正则结果“/$1”前面多加了一个“?”号,刷新页面,如果还不能解决,请参考方法三。
解决方法三:
在php.ini文件里面修改:
fastcgi.impersonate = 1 //把前面的;去掉,启用
下面这两个可以解开注释,也可以不用(看个人需要)
cgi.fix_pathinfo=1
cgi.force_redirect = 0