想要達成的效果很簡單,我有兩個模塊,Home、Wechat。
http://localhost/index.php/home/index/index 縮短為: http://localhost/index/index
http://localhost/index.php/wechat/index/index 縮短為: http://localhost/wechat/index/index
隱藏index.php,這個比較簡單,我開啟.htaccess的支持就行,具體配置執行百度吧,我用的是apache2,建立一個軟連接就成
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
重啟服務
然後,什麼都不用做,index.php就被隱藏了
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>
這就是ThinkPHP默認的.htaccess文件內容,可以看到,index.php已經可以被省略了
然後就是home的隱藏,如果我們直接在.htaccess文件中寫上home,那麼,其他的模塊我們就無法訪問了,就只有使用thinkphp提供的機制了
這裡說法就很多了,但我發現,大多都直說了一部分,都沒人說完整的。
我的做法是這樣的
在Common/Conf/config.php中加入配置
'DEFAULT_MODULE' => 'Home', 'MODULE_ALLOW_LIST' => array('Home','Wechat')
其中‘MODULE_ALLOW_LIST'的值是你所有允許訪問的模塊名,只有寫在這裡面的模塊才能被訪問。
最後,很多人說的在index.php中加入
define('BIND_MODULE','Home');
以上所述是小編給大家介紹的thinkphp隱藏index.php/home並允許訪問其他模塊的實現方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!