长沙PHP培训
达内长沙芙蓉路中心

15017569023

热门课程

thinkphp隐藏index.php/home

  • 时间:2016-10-28 17:06
  • 发布:长沙达内php培训学校
  • 来源:PHP教程

长沙PHP培训的老师今天给大家讲thinkphp隐藏index.php/home,并允许访问其他模块。

想要达成的效果很简单,我有两个模块,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提供的机制了

这里说法就很多了,但长沙PHP培训的老师发现,大多都只说了一部分,都没人说完整的。

我的做法是这样的

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

'DEFAULT_MODULE' => 'Home',

'MODULE_ALLOW_LIST' => array('Home','Wechat')

其中‘MODULE_ALLOW_LIST’的值是你所有允许访问的模块名,只有写在这里面的模块才能被访问。

最后,很多人说的在index.php中加入

define('BIND_MODULE','Home');

长沙PHP培训的老师不建议这样这,这样的配置,你的项目就只有Home模块能被访问了,如果有多个模块呢???难道使用?m=&c=&a=这种丑陋的形式??

上一篇:通过curl实现采集网站内容
下一篇:CP936转换成UTF-8

马上预约三天免费体验课

姓名:

电话:

PHP如何获取文件行数

PHP使用feof()函数读文件的方法

php创建多级目录的两种方法

phpQuery接收微信公众号链接地址有问题

选择城市和中心
贵州省

广西省

海南省