今天卖给客户的一个源码,客户说验证码不能显示,我在自已的Centos7.3 ngnix上装完后可以显示,没有问题。
我又在Windows服务器 apache+php5.2环境下,重新安装,结果问题出现了,我把验证码的网址,复制到地址栏执行,显示就提示:“No input file specified.”
启用REWRITE的伪静态功能的时候,首页可以访问,而访问内页的时候,就提示:“No input file specified.”
原因在于使用的PHP是fast_cgi模式,而在某些情况下,不能正确识别path_info所造成的错误,Wordpress的伪静态也有一样的问题。
Wordpress程序默认的.htaccess里面的规则:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
“No input file specified.”,是没有得到有效的文件路径造成的。
修改伪静态规则,如下:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
有没有发现不同?
其实就是在正则结果“/$1”前面多加了一个“?”号,问题也就随之解决了。
最后问题解决了,真的好高兴。