ThinkPHP URL 正则路由与实例



ThinkPHP 正则路由

ThinkPHP 正则路由可以实现更加复杂的路由定义,正则路由语法如下:

格式1:'路由正则'=>'[分组/模块/操作]?参数1=值1&参数2=值2...'
格式2:'路由正则'=>array('[分组/模块/操作]','参数1=值1&参数2=值2...')
格式3:'路由正则'=>'外部地址'
格式4:'路由正则'=>array('外部地址','重定向代码') 

语法说明

  1. 正则路由规则必须以 / 符号开始和结束(定界符)
  2. 格式 2 的参数可以传入数组或者字符串
  3. 参数值和外部地址中可以用动态变量,采用 :1、 :2 的方式代表第 1 个、第 2 个动态变量

在确定已经启用路由配置后,在项目配置文件里配置如下几个正则路由示例:

'URL_ROUTE_RULES'=> array(
    '/^product/(d+)$/'           =>'Products/Show?id=:1',
    '/^product/(d+)/(d+)/'      =>'Products/Detail?category=:1&id=:2',
    '/^blog/(d+)$/'              =>'http://www.5idev.com/Aboutus-guestbook-p-:1.shtml',
),

访问下面这个网址:

http://www.5idev.com/product/123

则会匹配到上面的第一条规则,实际访问的是 Products 模块的 Show 操作,并传入 id=123 的参数。

http://www.5idev.com/product/1/456

这个网址则会匹配到上面的第二条规则,实际访问的是 Products 模块的 Detail 操作,并传入 category=1&id=456 的参数。

第三个规则是匹配一个外部网址。当访问如下网址时:

http://www.5idev.com/blog/2

则会跳转到:

http://www.5idev.com/Aboutus-guestbook-p-2.shtml

参考阅读

  1. PHP 正则表达式
  2. ThinkPHP 项目配置
    ThinkPHP URL 路由功能详解与实例
    ThinkPHP URL 正则路由与实例
    ThinkPHP 使用U方法自动生成URL超链接
    ThinkPHP 2.0 URL 路由(2.0版本适用)
    ThinkPHP 2.0 泛路由使用详解(2.0 版本适用)
    ThinkPHP 2.1 版本 URL 路由规则对比 2.0 版本的变更
    ThinkPHP U方法中使用路由的问题与解决办法

zgguan.com(it学习网) — 提供最好的 XHTML教程DIV+CSS教程JavaScript教程PHP教程ThinkPHP教程