【apache】No input file specified


默認的

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
規則在apache fastcgi模式下會導致No input file specified.

修改成

RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
就OK,地址正常重寫。

我們都知道,使用偽靜態相對來說,對搜索引擎比較友好,啟用REWRITE的偽靜態功能的時候,首頁可以訪問,而訪問內頁的時候,就提示:“No input file specified.”。

Wordpress及Typecho等程序默認的.htaccess里面的規則為例:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
修改一下偽靜態規則,如下:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
在正則結果“$1”前面多加了一個“?”號,問題也就隨之解決了。

 

參考鏈接:

【TP5配置隱藏入口index.php文件】https://www.jianshu.com/p/380625ecd01a

【thinkphp5.1 tp5.1 安裝 初始化 配置 重寫 url 路由 Rewrite】http://www.mamicode.com/info-detail-2183164.html

 


免責聲明!

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



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