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