腾讯云618限量抢购
  1. PHP基础教程
  2. PHP+MySQL数据库教程

ThinkPHP 2.0 泛路由使用详解(2.0 版本适用)

最后更新:2011-04-21 13:48阅读:9578

提示

本部分内容适用于 ThinkPHP V2.0版本,在 3.0 版本中,泛路由已经变更为正则路由。如果您需要了解其他版本的路由,请参考:

  1. ThinkPHP 3.0 正则路由
  2. ThinkPHP 2.1 路由

ThinkPHP URL 泛路由

泛路由指的是对同一个路由名称提供了多个规则的支持,使得 URL 的设置更加灵活。例如:

http://www.5idev.com/index.php/product/123 这样的 URL 地址,实际访问的地址是 http://www.5idev.com/index.php/Products/show/product_id/123

http://www.5idev.com/index.php/product/2010/10 这样的 URL 地址,实际访问的地址是 http://www.5idev.com/index.php/Products/archive/year/2010/month/10

泛路由定义及实例

泛路由语法定义

泛路由规则中需要使用PHP正则表达式来对路由进行匹配,具体语法规则如下:

return array(
    // 泛路由
    'RouteName@'=>array(
        array('路由匹配正则', '模块名称', '操作名称', '参数定义', '额外参数'),
    ),
)
提示

如果您使用的是 ThinkPHP 2.1RC 及更高版本,请同时参阅《ThinkPHP 2.1 版本 URL 路由规则对比 2.0 版本的变更》。

泛路由使用实例

以本文开始的例子为例,泛路由配置如下:

return array(
    // 泛路由
    'product@'=>array(
        array('/^\/(\d+)$/', 'Products', 'show', 'product_id'),
	array('/^\/(\d+)\/(\d+)$/', 'Products', 'archive','year,month'),
    ),
)

泛路由规则中,使用正则表达式来匹配 URL 地址中路由名后边的字串,如下红色部分:

http://www.5idev.com/index.php/product/2010/10

其他参数上的使用和常规路由的使用一致。

参考阅读

  1. PHP正则表达式

本章节内容共分 7 部分:
  1. 1. ThinkPHP URL 路由功能详解与实例
  2. 2. ThinkPHP 2.0 泛路由使用详解(2.0 版本适用)
  3. 3. ThinkPHP 2.1 版本 URL 路由规则对比 2.0 版本的变更
  4. 4. ThinkPHP 使用U方法自动生成URL超链接
  5. 5. ThinkPHP U方法中使用路由的问题与解决办法
  6. 6. ThinkPHP URL 正则路由与实例
  7. 7. ThinkPHP 2.0 URL 路由(2.0版本适用)
腾讯云618限量抢购