有很多开源框架通过入口文件并借助PATH_INFO
来映射不同的请求,在这样的项目中通常会使用以下Rewrite规则省略URL中的index.php,使URL看起来更像是一个静态页面。
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
然而在FastCGI模式下访问时会提示 No input file specified.
。
原因尚未理解清楚,可以修改为如下规则,同时服务端使用$_SERVER['REDIRECT_PATH_INFO']
获取PATH_INFO
的内容
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
另外,FastCGI
模式下 ob_flush()
、flush()
无法及时将输出内容推送给浏览器,是因为 FastCGI
模式有输出缓冲区,可以通过修改配置项 FcgidOutputBufferSize
关闭缓冲区