thinkphp隱藏index.php/home,並允許訪問其他模組

來源:互聯網
上載者:User

標籤:

 想要達成的效果很簡單,我有兩個模組,Home、Wechat。

http://localhost/index.php/home/index/index    縮短為:  http://localhost/index/indexhttp://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 onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ 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‘);

不建議這樣這,這樣的配置,你的項目就只有Home模組能被訪問了,如果有多個模組呢???難道使用?m=&c=&a=這種醜陋的形式??

thinkphp隱藏index.php/home,並允許訪問其他模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.