关于Thinkphp3.2.3的路由使用

本文介绍了Thinkphp3.2.3框架中的路由使用,包括pathinfo模式、rewrite伪静态以及静态路由的配置和实现。通过设置路由,可以优化URL,提高用户体验。文中提供了一个静态路由的例子,并展示了如何隐藏模块名称,使得URL更加简洁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、关于路由

根据Thinkphp的开发手册,要使用路由功能,前提是你的URL支持PATH_INFO(或者兼容URL模式也可以,采用普通URL模式的情况下不支持路由功能),那么,什么是pathinfo模式?

pathinfo 模式是index.php/index/index 这种url格式,需要服务器支持pathinfo才行。
rewrite就是伪静态,把index.php隐藏掉。
兼容模式就是普通的模式加s=/参数/或者m=model&a=action这样的 各个开发框架都自己特定的格式。

Thinkphp支持伪静态只需要在应用配置文件里加上:

    'URL_MODEL'=>2,

这样的好处对我而言就是去掉看着很烦的index.php啦!

二、使用路由

下面是一个简单的静态路由的例子:

根据开发手册:静态路由其实属于规则路由的静态简化版(又称为URL映射),路由定义中不包含动态参数,静态路由不需要遍历路由规则而是直接定位,因此效率较高,但作用也有限。

在Home模块里的配置文件中:

<?php
return array(
    'URL_ROUTER_ON'   => true,//开启路由
    'URL_MAP_RULES'=>array(
        'success'=> 'Index/success',//Index控制器里的success方法
    ),
);

pathinfo模式:http://localhost/app/index.php/Home/Index/success
重写模式:http://localhost/app/Home/Index/success
开启路由后:http://localhost/app/Home/success(注意:还是有home模块)
这时我发现控制器在跳转url的时候也需要改变相应的地址~

header("Location:".__CONTROLLER__."/success");
//header("Location:home/success");//启用路由后的url

但是,设置路由之后,还是有模块名称home,看了还是很烦,下面来隐藏掉它!
在应用的配置文件中:

 'MODULE_ALLOW_LIST' => array('Home','Admin','User'),
 'DEFAULT_MODULE' => 'Home',

这样就可以用http://localhost/app/success访问了!!!
另外带参的路由设置就好好看手册啦!手册很重要!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值