首先我們來看一下PbootCMS官方提供的偽靜態(tài)規(guī)則:
<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f #如果頁面出現(xiàn)"No input file specified." 請注釋第一條,啟用第二條 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] #RewriteRule ^(.*)$ index.php [E=PATH_INFO:$1,QSA,PT,L] </IfModule> |
這里有一條很重要備注提示:
#如果頁面出現(xiàn)"No input file specified." 請注釋第一條,啟用第二條。
為什么同樣是Apache服務(wù)器會有多種情況呢?
在Apache服務(wù)器上,采用模塊化運行與采用fastcgi運行方式的偽靜態(tài)是有差別的,系統(tǒng)默認(rèn)開啟的規(guī)則是Apache采用模塊化運行方式時需要配置的偽靜態(tài)規(guī)則,而如果您當(dāng)前的Apache采用fastcgi模式運行PHP,那么使用默認(rèn)偽靜態(tài)規(guī)則就會出現(xiàn)“No input file specified.”的錯誤提示。原因是Apache采用fastcgi模式的時候,不能識別PATH_INFO路徑,報錯如下:
所以在windows下很多人安裝PbootCMS的時候都沒出現(xiàn)這個問題,因為大部分windows用戶安裝的Apache是采用模塊化運行方式的,而在linux上以及在少量windows系統(tǒng)用戶采用fastcgi運行模式。如果你采用fastcgi運行方式的時候出現(xiàn)此類提示,只需要把規(guī)則改為如下即可(即啟用備用規(guī)則):
RewriteRule ^(.*)$ index.php [E=PATH_INFO:$1,QSA,PT,L]