thinkphp url .php,ThinkPHP 2.0 URL 路由(2.0版本适用)

提示

本部分内容适用于 ThinkPHP V2.0版本,如果您需要了解其他版本的路由,请参考:

简单的说,URL 路由就是允许你定制你需要的 URL 样子,这样做会美化 URL ,提高用户体验,也有益于搜索引擎的收录。

例子:

原本的 URL 为:http://www.5idev.com/index.php/Products/Show/Category/5/Products_id/123/status/1

经过 URL 路由改写后 URL 可以为:

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

当然,使用 Apache 的 URL Rewrite 规则也能达到 URL 定制的功能,在此就不展开了,请参看 Apache Rewrite 相关的文章。

ThinkPHP URL 路由配置

在 ThinkPHP 中要使用 URL 路由功能,需要做如下配置:

在项目配置文件 config.php 里面开启路由功能(设置为 true):

'URL_ROUTER_ON'=> true,

在项目配置目录 Conf 下创建路路由定义文件,文件名为 routes.php ,注意使用 UTF-8 编码。

路由规则定义

路由规则定义于 routes.php 文件内,格式为数组格式,具体定义规则又分为常规路由和泛路由,语法如下:

return array(

// 常规路由

'路由名称'=>array('模块名称', '操作名称', '参数定义', '额外参数'),

// 泛路由

'路由名称@'=>array(

array('路由匹配正则', '模块名称', '操作名称', '参数定义', '额外参数'),

),

...更多的路由名称定义

)

路由规则参数中,参数定义和额外参数是可选项,可以根据实际情况选择性使用。

如果在配置文件里定义了路由开启功能,系统在执行 Dispatch 解析的时候,会判断当前 URL 是否存在定义的路由名称,如果有就会按照定义的路由规则来进行 URL 解析。

ThinkPHP URL 路由实例

以本文开始的例子为例,看该路由是如何定义的:

return array(

// 常规路由

'product'=>array('Products', 'show', 'category,product_id', 'status=1'),

)

这样当访问 index.php/product/5/123 时,实际访问的是 index.php/Products/show/category/5/product_id/123/status/1。

补充说明

ThinkPHP 2.0 版本不支持路由名称大写,即 product 可以,Product 路由失效。

不要将路由名称配置与模块名称相同。

参数定义的内容应该是动态的参数,URL 地址需要按顺序传入实际的参数值。

额外参数的内容应该是固定的参数值,由 ThinkPHP 在解析路由的时候,自动隐含传入而无需在 URL 中体现出来,且参数格式要普通格式,如:status=1&type=1。

解析到分组

如果启用了项目分组,而需要将路由解析至某个分组模块如 Admin 分组:

'product'=>array('Admin.Products', 'show', 'category,product_id', 'status=1'),

由于默认分组可以省略,因此如果解析至默认分组的话,可以不用加默认分组名称。

URL 兼容模式

如果 URL 使用了兼容模式,则上述 URL 地址应该为:index.php/?r=product&category=5&products_id=123。

以上是 ThinkPHP URL 路由配置说明及常规路由的用法实例,通过 URL 路由可以制造出更加友好和符合 SEO 的 URL ,要了解更加强大的泛路由,参见本节另一部分内容:ThinkPHP 泛路由 。

参考阅读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值