在apache服務器上安裝好程序后,訪問網站卻提示:“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”前面多加了一個“?”號,問題也就隨之解決了。