Heim > php教程 > php手册 > Hauptteil

thinkphp versteckt index.php/home und ermöglicht den Zugriff auf andere Module

WBOY
Freigeben: 2016-10-15 10:31:49
Original
2314 Leute haben es durchsucht

 想要达成的效果很简单,我有两个模块,Home、Wechat。

<span class="wmd-input-section" style="font-size: 18px;"><span class="token p"><span class="token url">http://localhost/index.php/home/index/index    缩短为:  <span class="token url">http://localhost/index/index<span class="token lf"><span class="token lf">
<span class="token p"><span class="token url">http://localhost/index.php/wechat/index/index  缩短为:  <span class="token url">http://localhost/wechat/index/index<br /><br /></span></span></span></span></span></span></span></span></span>
Nach dem Login kopieren
<span id="wmd-input-section-2" class="wmd-input-section" style="font-size: 18px;"><span class="token p">隐藏index.php,这个比较简单,我开启.htaccess的支持就行,具体配置执行百度吧,我用的是apache2,建立一个软连接就成</span></span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

重启服务

然后,什么都不用做,index.php就被隐藏了

<span style="color: #0000ff;"><</span><span style="color: #800000;">IfModule </span><span style="color: #ff0000;">mod_rewrite.c</span><span style="color: #0000ff;">></span><span style="color: #000000;">
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</span><span style="color: #0000ff;"></</span><span style="color: #800000;">IfModule</span><span style="color: #0000ff;">></span>
Nach dem Login kopieren

这就是ThinkPHP默认的.htaccess文件内容,可以看到,index.php已经可以被省略了

然后就是home的隐藏,如果我们直接在.htaccess文件中写上home,那么,其他的模块我们就无法访问了,就只有使用thinkphp提供的机制了

这里说法就很多了,但我发现,大多都直说了一部分,都没人说完整的。

我的做法是这样的

在Common/Conf/config.php中加入配置

'DEFAULT_MODULE' => 'Home',
'MODULE_ALLOW_LIST' => <span style="color: #0000ff;">array</span>('Home','Wechat')
Nach dem Login kopieren
<span id="wmd-input-section-5" class="wmd-input-section" style="font-size: 18px;"><span class="token p">其中&lsquo;MODULE<span class="token em"><span class="token md md-em md-start">_ALLOW<span class="token md md-em md-close">_LIST&rsquo;的值是你所有允许访问的模块名,只有写在这里面的模块才能被访问。<span class="token lf">
<span class="token lf">
<span class="token p">最后,很多人说的在index.php中加入</span></span></span></span></span></span></span></span><br /><br />
Nach dem Login kopieren
<span style="color: #008080;">define</span>('BIND_MODULE','Home');
Nach dem Login kopieren
<span id="wmd-input-section-6" class="wmd-input-section" style="font-size: 18px;"><span class="token p">不建议这样这,这样的配置,你的项目就只有Home模块能被访问了,如果有多个模块呢???难道使用?m=&c=&a=这种丑陋的形式??</span></span>
Nach dem Login kopieren
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage