静态路由

ThinkPHP 3.2.2

静态路由

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

如果我们定义了下面的静态路由

'URL_ROUTER_ON'   => true, 
'URL_MAP_RULES'=>array(
    'new/top' => 'news/index/type/top'
)

注意:为了不影响动态路由的遍历效率,静态路由采用URL_MAP_RULES定义和动态路由区分开来

定义之后,如果我们访问: http://serverName/Home/new/top

其实是访问: http://serverName/Home/news/index/type/top

静态路由是完整匹配,所以如果访问: http://serverName/Home/new/top/var/test

尽管前面也有new/top,但并不会被匹配到news/index/type/top

如果当前URL地址采用了伪静态支持的话,静态路由的定义需要包含伪静态后缀才能生效,例如:

'URL_ROUTER_ON'   => true, 
'URL_MAP_RULES'=>array(
    'new/top.html' => 'news/index?type=top'
)

静态路由的路由地址 只支持字符串,格式:[控制器/操作?]参数1=值1&参数2=值2