温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Thinkphp3.2访问Url时去掉模块

发布时间:2020-04-04 13:31:33 来源:网络 阅读:2206 作者:霍比特人666 栏目:web开发

通常我们在访问tp目录的时候是:http://xxx/index.php/Home/Index/index,以/模块/控制器/操作的方式访问,但是这样的话对于Url的优化不好,所以我们通常都会隐藏掉Home(模块),以http://xxx/index.php/Index/index这种方式来访问。



在tp的官网文档里是说在配置文件里配置了这2个就可以达到了这个效果了,但是实际是还不行的。

Thinkphp3.2访问Url时去掉模块


所以在这里可以推荐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]:'';
}

Thinkphp3.2访问Url时去掉模块


操作后即可达到效果。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI