Thinkphp3.2访问Url时去掉模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thinkphp3.2访问Url时去掉模块相关的知识,希望对你有一定的参考价值。
通常我们在访问tp目录的时候是:http://xxx/index.php/Home/Index/index,以/模块/控制器/操作的方式访问,但是这样的话对于Url的优化不好,所以我们通常都会隐藏掉Home(模块),以http://xxx/index.php/Index/index这种方式来访问。
在tp的官网文档里是说在配置文件里配置了这2个就可以达到了这个效果了,但是实际是还不行的。
所以在这里可以推荐2种方法来达到这种效果
1、在index.php文件加上以下代码
define(‘DEFAULT_MODULE‘,‘Home‘) //设置默认模块
2、修改Thinkphp/Libary/Think/Dispather.class.php文件
$_GET[$varModule] = preg_replace(‘/\.‘ . __EXT__ . ‘$/i‘, ‘‘,$paths[0]);
$_SERVER[‘PATH_INFO‘] = isset($paths[1])?$paths[1]:‘‘;
改成
$allowList = C(‘MODULE_ALLOW_LIST‘); // 允许的模块列表
$module = preg_replace(‘/\.‘ . __EXT__ . ‘$/i‘, ‘‘,$paths[0]);
if( empty($allowList) || (is_array($allowList) && in_array_case($module, $allowList))){
$_GET[$varModule] = $module;
$_SERVER[‘PATH_INFO‘] = isset($paths[1])?$paths[1]:‘‘;
}
操作后即可达到效果。
本文出自 “12633313” 博客,请务必保留此出处http://12643313.blog.51cto.com/12633313/1904372
以上是关于Thinkphp3.2访问Url时去掉模块的主要内容,如果未能解决你的问题,请参考以下文章