phpstudy APACHE支持.htaccess以及 No input file specified解決方案


APACHE支持.htaccess以及 No input file specified解決方案

你的Apache安裝文件夾conf里找到httpd.conf文件

索LoadModule rewrite_module modules/mod_rewrite.so 如果前面有注釋符號#,請去掉。
搜索Options FollowSymLinks,然后將它下面的AllowOverride None 修改為AllowOverride All;

【1】

沒想到遇見了 No input file specified   因為項目用了URL route ,估摸着可能是rewrite的問題。

記錄一下解決方案。

1.檢查doc_root 是否設置此值

2.檢查.hta文件 , 很多框架都是index.php當入口文件。

默認的

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

規則在apache fastcgi模式下會導致No input file specified.

修改成

RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

就OK,地址正常重寫。

 

【2】

我們都知道,使用偽靜態相對來說,對搜索引擎比較友好,而我在Dreamhost的空間上啟用REWRITE的偽靜態功能的時候,首頁可以訪問,而訪問內頁的時候,就提示:“No input file specified.”。
百度搜索了一下,發現還有其它空間商也有此問題,原因在於空間所使用的PHP是fast_cgi模式,而在某些情況下, 不能正確識別path_info所造成的錯誤,就是Wordpress也有一樣的問題,還好找到了解決方案!
我們首先來看一下Wordpress及Typecho等程序默認的.htaccess里面的規則:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

而提示是說:“No input file specified.”,也就是說沒有得到有效的文件路徑。在Google中找到了解決方案,就是修改一下偽靜態規則,如下:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

在正則結果“$1”前面多加了一個“?”號,問題也就隨之解決了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM